Verbinding maken met SQL Server

Van toepassing op
Access voor Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Denk aan de mooie dagen van uw jeugd, toen alfabet soep uw favoriete maaltijd was. Houd deze blije gedachten in uw achterhoofd terwijl we een paar lepels proeven van de databaseversie van alfabetsoep. In de volgende secties worden de basisbeginselen beschreven van het verbinden met een database met verbindingsreeksen en het gebruiken van een database-programmeerinterface in uw Access VBA-code.

Onderdelen van gegevenstoegang

In dit artikel

ODBC-stuurprogramma of OLE DB-provider gebruiken

Programmatische interface met SQL Server vanuit Access

Overzicht van versies van ODBC-stuurprogramma's

Overzicht van versies van OLE DB-provider

Sleutelwoordenoverzicht ODBC

Sleutelwoordenoverzicht OLE DB

ODBC-stuurprogramma of OLE DB-provider gebruiken

Verbindingsreeksen bestaan al heel lang. U kunt een opgemaakte verbindingsreeks definiëren in de gebruikersinterface van Access of in VBA-code. Met een verbindingsreeks (met ODBC of OLE DB) worden gegevens rechtstreeks doorgestuurd naar de database, zoals de serverlocatie, de naam van de database, het type beveiliging en andere nuttige opties. Bijvoorbeeld:

ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;

In het begin was er SQL Server Native Client (SNAC), een op zichzelf staande bibliotheek met ODBC- en OLEDB-technologieën die nog steeds beschikbaar is voor SQL Server-versies van 2005 tot 2012. Veel oudere applicaties gebruikten SNAC en het wordt nog steeds ondersteund voor achterwaartse compatibiliteit, maar we raden af om het te gebruiken voor nieuwe applicatie-ontwikkeling. U moet nieuwere, individuele, downloadbare versies van de ODBC-stuurprogramma's gebruiken.

ODBC-Stuurprogramma's

Open Database Connectivity (ODBC) is een protocol waarmee u een Access-database verbindt met een externe gegevensbron, zoals Microsoft SQL Server. Meestal gebruikt u bestandsgegevensbronnen (ook wel DSN-bestanden genoemd) om een verbindingsreeks toe te voegen. In dat geval wordt het sleutelwoord FILEDSN gebruikt in de verbindingsreeks of opgeslagen in het register, in welk geval het DSN-sleutelwoord wordt gebruikt. U kunt ook VBA gebruiken om deze eigenschappen in te stellen met een 'DSN-less' verbindingsreeks.

In de loop der jaren zijn ODBC-stuurprogramma's in drie fasen gedistribueerd:

  • Voorafgaand aan 2005 werden ODBC-Stuurprogramma's geleverd met Windows Data Access Components (WDAC), dat oorspronkelijk Microsoft Data Access Components (MDAC) heette. Deze onderdelen worden nog steeds geleverd met Windows, voor achterwaartse compatibiliteit. Zie Microsoft- of Windows Data Access Components voor meer informatie.
  • ODBC-Stuurprogramma's werden geleverd met SNAC voor SQL Server 2005 tot en met SQL Server 2012.
  • Na SQL Server 2012 werden ODBC-stuurprogramma's afzonderlijk verzonden en bevatten ze ondersteuning voor nieuwe SQL Server-functies.

Bij nieuwe projecten vermijdt u het gebruik van ODBC-stuurprogramma's uit de eerste twee fasen en gebruikt u ODBC-stuurprogramma's uit de derde fase.

OLE DB-providers

OLE DB (Object Linking and Embedding, Database) is een meer recent protocol dat u gebruikt om een Access-database aan te sluiten op een externe gegevensbron, zoals Microsoft SQL Server. OLE DB vereist geen DSN en biedt ook volledige toegang tot ODBC-gegevensbronnen en ODBC-stuurprogramma's.

Tip Normaal gesproken gebruikt u het dialoogvenster Eigenschappen van Data Link om een OLE DB-verbindingsreeks toe te voegen. Hoewel Access het dialoogvenster Data Link-eigenschappen niet kan openen, kunt u in Windows Verkenner een leeg txt-bestand maken, het bestandstype wijzigen in .udl en vervolgens dubbelklikken op het bestand. Nadat u een verbindingsreeks hebt gemaakt, wijzigt u het bestandstype terug naar .txt.

In de loop der jaren zijn OLE DB-providers in drie fasen gedistribueerd:

  • Voorafgaand aan 2005 werden OLE DB-providers geleverd met Windows Data Access Components (WDAC), dat oorspronkelijk Microsoft Data Access Components (MDAC) heette.
  • OLE DB-providers werden geleverd met SQL Server 2005 tot en met SQL Server 2017. Het werd afgeschaft in 2011.
  • In 2017 werd de OLE DB-provider van SQL Server teruggehaald.

De momenteel aanbevolen versie voor het ontwikkelen van nieuwe oplossingen is OLE DB-stuurprogramma 18 voor SQL Server.

Hoe de prestaties te optimaliseren met een ODBC-verbindingsreeks

Om de prestaties te optimaliseren, het netwerkverkeer te minimaliseren en de toegang van meerdere gebruikers tot de SQL Server-database te beperken, gebruikt u zo min mogelijk verbindingsreeksen, door verbindingsreeksen over meerdere recordsets te delen. Hoewel Ace eenvoudig een verbindingsreeks doorgeeft aan de server, begrijpt en gebruikt het de volgende sleutelwoorden: DSN, DATABASE, UID, PWD en DRIVER helpen client/server-communicatie te minimaliseren.

Opmerking Als een ODBC-verbinding met een externe gegevensbron wordt verbroken, wordt er automatisch opnieuw verbinding mee gemaakt. Als het opnieuw proberen lukt, kunt u verder werken. Als het opnieuw proberen mislukt, kunt u nog steeds werken met objecten die niet afhankelijk zijn van de verbinding. Om opnieuw verbinding te maken, sluiten u Access en opent u het opnieuw.

Aanbevelingen voor het gebruik van zowel ODBC als OLE DB

Vermijd het combineren van verbindingsreeks- en databasetoegangstechnologieën. Gebruik een ODBC-verbindingsreeks voor DAO. Gebruik een OLE DB-verbindingsreeks voor ADO. Als uw toepassing VBA-code bevat die zowel DAO als ADO gebruikt, gebruikt u het ODBC-stuurprogramma voor DAO en de OLE DB-provider voor ADO. Probeer om de nieuwste functionaliteit en ondersteuning te krijgen voor zowel ODBC als OLEDB.

ODBC gebruikt de term stuurprogramma en OLE DB gebruikt de term provider. De termen beschrijven hetzelfde type softwarecomponent, maar zijn niet uitwisselbaar in de syntaxis van verbindingsreeksen. Gebruik de juiste waarde zoals gedocumenteerd.

Naar boven

Programmatische interface met SQL Server vanuit Access

Vanuit Access kunt u op twee manieren vanuit een programma een interface naar een SQL Server-database maken.

DAO

Een DAO (Data Access object) biedt een abstracte interface met een database. Microsoft Data Access Objects (DAO) is het systeemeigen programmeerobjectmodel waarmee u de kern van Access en SQL Server kunt maken, verwijderen, wijzigen en weergeven van objecten, tabellen, velden, indexen, relaties, query's, eigenschappen en externe databases.

Zie Naslaginformatie over Microsoft Data Access-objecten voor meer informatie.

ADO

ActiveX-gegevensobjecten (ADO) biedt een geavanceerd programmeermodel en is beschikbaar in Access door een verwijzing naar een externe bibliotheek. ADO is eenvoudig te leren en maakt het mogelijk om gegevens uit verschillende bronnen, waaronder Access en SQL Server, te openen en te bewerken. De belangrijkste voordelen zijn gebruiksgemak, hoge snelheid, laag geheugengebruik en een kleine schijfvoetafdruk. ADO ondersteunt ook belangrijke functies voor het bouwen en webgebaseerde applicaties.

Zie Naslaginformatie over Microsoft ActiveX-gegevensobjecten en Microsoft ActiveX-gegevensobjecten (ADO) voor meer informatie.

Welke moet u gebruiken?

In een Access-oplossing die VBA-code gebruikt, kunt u DAO, ADO of beide als uw database-interfacetechnologie gebruiken. DAO blijft de standaardinstelling in Access. Voor alle formulieren en rapporten en Access-query's wordt bijvoorbeeld DAO gebruikt. Maar als u migreert naar SQL Server kunt u overwegen ADO te gebruiken, om de oplossing efficiënter te maken. Hier vindt u algemene richtlijnen die u kunt gebruiken om te bepalen wanneer u DAO of ADO wilt gebruiken.

Gebruik DAO als u het volgende wilt doen:

  • Maak een lees/schrijf-, gebonden formulier zonder gebruik van VBA.
  • Lokale tabellen opvragen.
  • Download gegevens naar tijdelijke tabellen.
  • U kunt Pass Through-query's gebruiken als gegevensbronnen voor rapporten of formulieren in de modus alleen-lezen.
  • Een TableDef-of QueryDef-object definiëren en gebruiken in VBA.

Gebruik ADO als u het volgende wilt doen:

  • Maak gebruik van extra manieren om te optimaliseren, zoals het uitvoeren van asynchrone bewerkingen.
  • Voer DDL-en DML Pass Through-query's uit.
  • Ga rechtstreeks naar SQL Server-gegevens via recordsets in VBA.
  • Schrijf eenvoudigere code voor bepaalde taken, zoals streaming van Blob's.
  • Roep een opgeslagen procedure rechtstreeks aan met parameters, met behulp van een opdrachtobject in VBA.

Naar boven

Overzicht van versies van ODBC-stuurprogramma's

De volgende tabel bevat een overzicht van belangrijke informatie over versies van ODBC-stuurprogramma's, downloadlocaties en functie-ondersteuning. Zorg ervoor dat u de juiste bitsversie (64-bits of 32-bits) van het stuurprogramma gebruikt op basis van Windows en niet Office. Als u de 32-bitsversie van Access uitvoert op 64-bits Windows, installeert u 64-bitsstuurprogramma's, waaronder de 32-bitsonderdelen die nodig zijn voor Access.

Zie Trefwoorden voor verbindingsreeksen gebruiken met SQL Server Native Client, Opmerkingen bij de release voor ODBC voor SQL Server in Windows (V17) en Functies van het Microsoft ODBC-stuurprogramma voor SQL Server in Windows (V13, 11) voor meer informatie.

ODBC-Stuurprogramma's Versie Downloaden Nieuwe functies
ODBC-Stuurprogramma's 17.0 tot en met 17.3 SQL Server 2017 Downloaden ODBC Driver 17.3
Azure Active Directory gebruiken met het ODBC-stuurprogramma
Beperkingen van het ODBC-stuurprogramma bij gebruik van Always Encrypted
XA-transacties gebruiken
ODBC Driver 17.2
Always Encrypted gebruiken met het ODBC-stuurprogramma voor SQL Server
Gegevensclassificatie
UTF-8-servercodering sortering en Unicode-ondersteuning
ODBC Driver 17.1
Always Encrypted gebruiken met het ODBC-stuurprogramma voor SQL Server
ODBC Driver 17.0
Always Encrypted
UseFMTONLY Verouderde metagegevens gebruiken in speciale gevallen waarvoor tijdelijke tabellen zijn vereist. Zie Releaseopmerkingen voor ODBC voor SQL Server in Windows
Verschillen bij het gebruik van managed instance (ODBC versie 17)
ODBC Driver 13.1 SQL Server 2016 SP1, SQL Azure Downloaden Always Encrypted
Azure Active Directory
AlwaysOn-beschikbaarheidsgroepen
Stuurprogrammabewuste verbindingspooling in het ODBC-stuurprogramma voor SQL Server
ODBC Driver 13.0 SQL Server 2016 Downloaden Internationale domeinnaam (IDN)
ODBC Driver 11.0 SQL Server 2005 tot en met 2012 Downloaden Stuurprogrammabewuste verbindingspooling
Verbindingstolerantie in het Windows ODBC-stuurprogramma
Asynchrone uitvoering
Service Principal Names (SPN's) in clientverbindingen (ODBC)
Functies van het Microsoft ODBC-stuurprogramma voor SQL Server in Windows

Naar boven

Overzicht van versies van OLE DB-provider

De volgende tabel bevat belangrijke informatie over versies van OLE DB-providers, downloadlocaties en functie-ondersteuning. Zorg ervoor dat u de juiste bitsversie (64-bits of 32-bits) van het stuurprogramma gebruikt op basis van Windows en niet Office. Als u de 32-bitsversie van Access uitvoert op 64-bits Windows, installeert u 64-bitsstuurprogramma's, waaronder de 32-bitsonderdelen die nodig zijn voor Access.

Zie Verbindingsreekstrefwoorden gebruiken met SQL Server Native Client voor meer informatie.

OLE DB-provider Versie Downloaden Nieuwe functies
Stuurprogramma OLE DB 18.2.1
(MSOLEDBSQL)
SQL Server 2017 Downloaden Zie OLE DB-stuurprogramma voor SQL Server functie en opmerkingen bij de release voor het Microsoft OLE DB-stuurprogramma voor SQL Server
SQL Server Native Client (SQLNCLI) SQL Server 2005 tot en met 2012 Afgeschaft, niet gebruiken
OLE DB-stuurprogramma (SQLOLEDB) Afgeschaft, niet gebruiken

Naar boven

Sleutelwoordenoverzicht ODBC

De volgende tabel bevat een overzicht van ODBC-sleutelwoorden die door SQL Server worden herkend en hun doel. In Access wordt alleen een deelverzameling herkend.

Trefwoord Beschrijving
Addr Het netwerkadres van de server waarop een exemplaar van SQL Server wordt uitgevoerd.
AnsiNPW Specificeert het gebruik van ANSI-gedefinieerd gedrag voor het afhandelen van NULL-vergelijkingen, opvulling van tekengegevens, waarschuwingen en NULL-aaneenschakeling (Ja of Nee).
APP De naam van de toepassing die SQLDriverConnect aanroept.
ApplicationIntent Declareert het type werkbelasting van de toepassing bij het maken van verbinding met een server (ReadOnly of ReadWrite).
AttachDBFileName De naam van het primaire bestand van een toevoegbare database.
AutoTranslate Hiermee wordt aangegeven of ANSI-tekenreeksen worden verzonden tussen de client of server of worden vertaald naar Unicode (Ja of Nee).
Database De naam van de database. Beschrijving Het doel van de verbinding. Stuurprogrammanaam van het stuurprogramma zoals geretourneerd door SQLDrivers.
DSN Naam van een bestaande ODBC-gebruiker of systeemgegevensbron. Versleutelen Hiermee geeft u op of gegevens moeten worden versleuteld voordat ze via het netwerk worden verzonden (ja of nee).
Failover_Partner De naam van de failover-partnerserver die moet worden gebruikt als er geen verbinding kan worden gemaakt met de primaire server.
FailoverPartnerSPN De SPN voor de failover-partner.
Fallback Afgeschaft sleutelwoord.
FileDSN Naam van een bestaande ODBC-gebruiker of systeemgegevensbron. Taal De SQL Server taal.
MARS_Connection Hiermee geeft u meerdere actieve resultaatsets (MARS) op voor de verbinding voor SQL Server 2005 (9.x) of hoger (Ja of Nee).
MultiSubnetFailover Hiermee geeft u op of u verbinding wilt maken met de listener van de beschikbaarheidsgroep van een SQL Server-beschikbaarheidsgroep of een exemplaar van een failovercluster (Ja of Nee).
Netto dbnmpntw geeft named pipes aan en dbmssocn geeft TCP/IP aan.
PWD Het wachtwoord voor SQL Server-aanmelding.
QueryLog_On Hiermee wordt de registratie van langlopende query's opgegeven (Ja of Nee).
QueryLogFile Het volledige pad en de bestandsnaam van een bestand dat wordt gebruikt voor het vastleggen van gegevens op query's met een lange uitvoeringstijd.
QueryLogTime Een tekenreeks met cijfers die de drempel (in milliseconden) voor het loggen van langlopende query's aangeeft.
QuotedId Hiermee wordt aangegeven of SQL Server de ISO-regels hanteert voor het gebruik van aanhalingstekens in SQL-instructies (Ja of Nee).
Regionaal Hiermee bepaalt u of het ODBC-stuurprogramma voor SQL Server Native Client clientinstellingen gebruikt bij het converteren van valuta-, datum- of tijdgegevens naar tekengegevens (Ja of Nee).
SaveFile Naam van een ODBC-gegevensbronbestand waarin de kenmerken van de huidige verbinding zijn opgeslagen als de verbinding tot stand is gebracht.
Server De naam van een exemplaar van SQL Server: Server op het netwerk, een IP-adres of een Configuration Manager-alias.
ServerSPN De SPN voor de server.
StatsLog_On Hiermee schakelt u de opname van prestatiegegevens van SQL Server Native Client ODBC-stuurprogramma's in.
StatsLogFile Het volledige pad en de bestandsnaam van een bestand dat wordt gebruikt voor het opnemen van SQL Server Native Client ODBC-stuurprogramma prestatiestatistieken.
Trusted_Connection Hiermee geeft u op of de Windows-verificatiemodus of de gebruikersnaam of het wachtwoord voor SQL Server moet worden gebruikt voor validatie bij aanmelding (ja of Nee).
TrustServerCertificate Wanneer gebruikt met Versleuteld, wordt versleuteling met een zelfondertekend servercertificaat ingeschakeld.
UID De naam van de SQL Server-aanmelding.
UseProcForPrepare Afgeschaft sleutelwoord.
WSID De werkstations-id, de netwerknaam van de computer waarop de toepassing zich bevindt.

Naar boven

Sleutelwoordenoverzicht OLE DB

De volgende tabel bevat een overzicht van OLE DB-sleutelwoorden die door SQL Server worden herkend en hun doel. In Access wordt alleen een deelverzameling herkend.

Trefwoord Beschrijving
Addr Het netwerkadres van de server waarop een exemplaar van SQL Server wordt uitgevoerd.
APP De tekenreeks waarmee de toepassing wordt aangeduid.
ApplicationIntent Declareert het type werkbelasting van de toepassing bij het maken van verbinding met een server (ReadOnly of ReadWrite).
AttachDBFileName De naam van het primaire bestand van een toevoegbare database.
AutoTranslate Hiermee configureert u OEM/ANSI-tekenomzetting (Waar of Onwaar).
Connect Timeout De hoeveelheid tijd (in seconden) die moet worden gewacht totdat de initialisatie van de gegevensbron is voltooid.
Huidige taal De naam van de taal van de SQL-Server.
Gegevensbron De naam van een exemplaar van SQL Server in de organisatie.
Database De naam van de database.
DataTypeCompatibility Een getal dat aangeeft welke modus wordt gebruikt voor het verwerken van gegevenstypen.
Versleutelen Geeft aan of gegevens moeten worden versleuteld voordat deze worden verzonden via het netwerk (Ja of Nee).
FailoverPartner De naam van de failover-server die wordt gebruikt voor databasespiegeling.
FailoverPartnerSPN De SPN voor de failover-partner.
Initiële catalogus De naam van de database.
Oorspronkelijke bestandsnaam De naam van het primaire bestand (inclusief de volledige padnaam) van een koppelbare database.
Geïntegreerde beveiliging Wordt gebruikt voor Windows-authenticatie (SSPI).
Taal De taal van de SQL Server.
MarsConn Hiermee geeft u meerdere actieve resultaatsets (MARS) op voor de verbinding voor SQL Server 2005 (9.x) of hoger (Ja of Nee).
Netto De netwerkbibliotheek die wordt gebruikt om verbinding te maken met een exemplaar van SQL Server in de organisatie.
Netwerkadres Het netwerkadres van een exemplaar van SQL Server in de organisatie.
PacketSize Network packet size. De standaardwaarde is 4096.
Persist Security Info Geeft aan of blijvende beveiliging is ingeschakeld (Waar of Onwaar).
PersistSensitive Geeft aan of de optie blijvend gevoelig is ingeschakeld (Waar of Onwaar).
Provider Voor SQL Server Native Client moet dit SQLNCLI11 zijn.
PWD Het wachtwoord voor SQL Server-aanmelding.
Server De naam van een exemplaar van SQL Server: Server op het netwerk, een IP-adres of een Configuration Manager-alias.
ServerSPN De SPN voor de server.
Timeout De hoeveelheid tijd (in seconden) die moet worden gewacht totdat de initialisatie van de gegevensbron is voltooid.
Trusted_Connection Hiermee geeft u op of de Windows-verificatiemodus of de gebruikersnaam of het wachtwoord voor SQL Server moet worden gebruikt voor validatie bij aanmelding (ja of Nee).
TrustServerCertificate Hiermee wordt aangegeven of een servercertificaat wordt gevalideerd (waar of onwaar).
UID De naam van de SQL Server-aanmelding.
Gegevensversleuteling gebruiken Geeft aan of gegevens moeten worden versleuteld voordat deze worden verzonden via het netwerk (waar of onwaar).
UseProcForPrepare Afgeschaft sleutelwoord.
WSID De werkstations-id, de netwerknaam van de computer waarop de toepassing zich bevindt.

Naar boven

ODBC-gegevensbronnen beherengekoppelde tabellen beheren