Tænk tilbage på de gode gamle dage, hvor bogstaver i morgenknasen var det sjoveste, der fandtes. Hav disse glade tanker i baghovedet, mens vi giver dig en smagsprøve på databaseversionen af bogstaver i morgenknasen. Følgende afsnit er en introduktion til, hvordan du når til en database ved hjælp af forbindelsesstrenge og bruger en database-programmeringsgrænseflade i din Access VBA-kode.
I denne artikel
Brug af ODBC-driver eller OLE DB-udbyder
Programmeringsmæssig grænseflade til SQL Server fra Access
Oversigt over ODBC-driverversioner
Brug af ODBC-driver eller OLE DB-udbyder
Forbindelsesstrenge har eksisteret længe. Du kan enten definere en formateret forbindelsesstreng i Access-brugergrænsefladen eller i VBA-kode. En forbindelsesstreng (uanset om den er ODBC eller OLE DB) videregiver oplysninger direkte til databasen, f. eks. serverplacering, databasenavn, type af sikkerhed og andre nyttige indstillinger. Her er et eksempel:
ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;
Først var der SQL Server Native Client (SNAC), som er et fritstående bibliotek, der indeholdt ODBC- og OLEDB-teknologier, og som stadig er tilgængeligt for SQL Server-versionerne 2005 til 2012. Mange ældre programmer brugte SNAC, og det understøttes stadig af hensyn til bagudkompatibilitet, men vi anbefaler ikke, at du bruger det til at udvikle nye programmer. Du skal bruge nyere versioner af ODBC-driverne, som kan hentes.
ODBC-drivere
Open Database Connectivity (ODBC) er en protokol, som du bruger til at knytte en Access-database til en ekstern datakilde som f.eks. Microsoft SQL Server. Du bruger typisk fildatakilder (også kaldet DSN-filer) til at tilføje en forbindelsesstreng. I så fald bruges nøgleordet FILEDSN i forbindelsesstrengen, eller også gemmes det i registreringsdatabase, således at DSN-nøgleordet bruges. Du kan også bruge VBA til at angive disse egenskaber ved hjælp af en forbindelsesstreng "uden DSN".
I løbet af årene er ODBC-drivere blevet udgivet i tre faser:
-
Før 2005 blev ODBC-drivere udgivet med Windows Data Access Components (WDAC), som oprindeligt blev kaldt Microsoft Data Access Components (MDAC). Disse komponenter leveres stadig til Windows med henblik på bagudkompatibilitet. Få flere oplysninger i Microsoft- eller Windows Data Access Components.
-
ODBC-drivere, der følger med SNAC til SQL Server 2005 via SQL Server 2012.
-
Efter SQL Server 2012 leveres ODBC-drivere enkeltvis og indeholder understøttelse af nye funktioner i SQL Server.
I forbindelse med ny udvikling skal du undlade at bruge ODBC-drivere fra de første to faser og bruge ODBC-drivere fra tredje fase.
OLE DB-leverandører
Object Linking and Embedding, Database (OLE DB) er en nyere protokol, der bruges til at knytte en Access-database til en ekstern datakilde som f.eks. Microsoft SQL Server. OLE DB kræver ikke en DSN og giver også fuld adgang til ODBC-datakilder og ODBC-drivere.
Tip Du bruger typisk dialogboksen datalink-egenskaber til at tilføje en OLE DB-forbindelsesstreng. Selvom Access ikke kan åbne dialogboksen datalink-egenskaber i Windows Stifinder, kan du oprette en tom .txt-fil, ændre filtypen til .udl og derefter dobbeltklikke på filen. Når du har oprettet en forbindelsesstreng, kan du ændre filtypen tilbage til .txt.
I løbet af årene er OLE DB-udbydere blevet udgivet i tre faser:
-
Før 2005 blev OLE DB-udbydere udgivet med Windows Data Access Components (WDAC), som oprindeligt blev kaldt Microsoft Data Access Components (MDAC).
-
OLE DB-udbydere, der følger med SNAC til SQL Server 2005 via SQL Server 2017. Det blev udfaset i 2011.
-
I 2017 blev udfasningen af SQL Server OLE DB-udbyderen annulleret.
Den nuværende anbefalede version til udvikling af nye løsninger er OLE DB-driver 18 til SQL Server.
Sådan optimerer du ydeevnen med en ODBC-forbindelsesstreng
Hvis du vil optimere ydeevnen, minimere netværkstrafik og reducere adgang for flere brugere til SQL Server-databasen, skal du bruge så få forbindelsesstrenge som muligt ved at dele forbindelsesstrenge over flere poster. Selvom Ace bare videresender en forbindelsesstreng til serveren, forstår den og bruger følgende nøgleord: DSN, DATABASE, UID, PWD og DRIVER hjælper med at minimere klient-/serverkommunikation.
Bemærk Hvis en ODBC-forbindelse til en ekstern datakilde mistes, vil Access automatisk forsøge at genoprette forbindelsen til den. Hvis det lykkes, kan du fortsætte med at arbejde. Hvis forsøget mislykkes, kan du stadig arbejde med objekter, der ikke er afhængige af forbindelsen. Hvis du vil oprette forbindelse igen, skal du lukke og genåbne Access.
Anbefalinger, når du bruger både ODBC og OLE DB
Undgå at blande forbindelsesstreng- og database-adgangsteknologier. Brug en ODBC-forbindelsesstreng til DAO. Brug en OLE DB forbindelsesstreng til ADO. Hvis programmet indeholder VBA-kode, der bruger både DAO og ADO, skal du bruge ODBC-driveren til DAO og OLE DB-udbyderen til ADO. Sørg for at få de seneste funktioner og understøttelser til både ODBC og OLEDB.
ODBC bruger udtrykket driver, og OLE DB bruger udtrykket udbyder. Ordene henviser til den samme type softwarekomponent, men kan ikke erstattes i syntaksen for forbindelsesstrenge. Brug den korrekte værdi som beskrevet.
Programmeringsmæssig grænseflade til SQL Server fra Access
Der er to måder, hvorpå du programmeringsmæssigt kan oprette en grænseflade til en SQL Server-database fra Access.
DAO
Et dataadgangsobjekt (DAO) giver en abstrakt grænseflade til en database. Microsoft Data Access-objekter (DAO) er den oprindelige programmeringsobjektmodel, der giver dig mulighed for at få adgang til og oprette en oversigt over Access-og SQL Server-objekter, tabeller, felter, indekser, relationer, forespørgsler, egenskaber og eksterne databaser.
Få flere oplysninger i Microsoft Data Access Objects-reference.
ADO
ActiveX Data Objects (ADO) indeholder en programmeringsmodel på højt niveau og er tilgængelig i Access ved hjælp af en reference til et tredjepartsbibliotek. ADO er let at lære og giver klientprogrammer adgang til og mulighed for at manipulere data fra en række forskellige kilder, herunder Access og SQL Server. De primære fordele er brugervenlighed, høj hastighed, lavt hukommelsesforbrug og mindre lagerplads. ADO understøtter også nøglefunktioner til opbygning og webbaserede programmer.
Få flere oplysninger i Microsoft ActiveX Data Objects-reference og Microsoft ActiveX Data Objects (ADO).
Hvilket skal du bruge?
I en Access-løsning, der bruger VBA-kode, kan du bruge DAO, ADO eller begge dele som teknologi til din database-grænseflade. DAO er fortsat standard i Access. Alle formularer og rapporter samt Access-forespørgsler benytter for eksempel DAO. Men når du overfører til SQL Server, kan du overveje at bruge ADO, som vil gøre din løsning mere effektiv. Her er de generelle retningslinjer, der kan hjælpe dig med at beslutte, hvornår du skal bruge DAO eller ADO.
Brug DAO, når du vil:
-
Oprette en læs- og redigerbar, bundet formular uden at bruge VBA.
-
Oprette forespørgsler om lokale tabeller.
-
Hente data til midlertidige tabeller.
-
Bruge gennemførselsforespørgsler som datakilder for rapporter eller formularer i skrivebeskyttet tilstand.
-
Definere og bruge et TableDef- eller QueryDef-objekt i VBA.
Brug ADO, når du vil:
-
Benytte flere metoder til at optimere, f. eks. udførelse af asynkrone handlinger.
-
Køre DDL og DML-gennemkørselsforespørgsler.
-
Få adgang til SQL Server-data direkte i sæt af poster i VBA.
-
Skrive mere enkel kode til visse opgaver, f. eks. streaming af Blobs.
-
Kalde en gemt procedure direkte med parametre ved hjælp af et kommandoobjekt i VBA.
Oversigt over ODBC-driverversioner
Følgende tabel indeholder en oversigt over vigtige oplysninger om ODBC-driverversioner, downloadplaceringer og understøttelse af funktioner. Husk at bruge den korrekte bit-version (64-bit eller 32-bit) af den driver, der er baseret på Windows og ikke Office. Hvis du kører 32-bit Access til 64-bit Windows, skal du installere 64-bit drivere, som omfatter de 32-bit komponenter, der skal bruges til Access.
Få flere oplysninger i Sådan bruger du forbindelsesstreng-nøgle med SQL Server Native Client, Udgivelsesnoter for ODBC til SQL Server i Windows (V17) og Funktioner til Microsoft ODBC-driver til SQL Server i Windows (V13, 11).
Oversigt over OLE DB-udbyderversioner
Følgende tabel indeholder en oversigt over vigtige oplysninger om OLE DB-driverversioner, downloadplaceringer og understøttelse af funktioner. Husk at bruge den korrekte bit-version (64-bit eller 32-bit) af den driver, der er baseret på Windows og ikke Office. Hvis du kører 32-bit Access til 64-bit Windows, skal du installere 64-bit drivere, som omfatter de 32-bit komponenter, der skal bruges til Access.
Få flere oplysninger i Brug af forbindelsesstrengs-nøgleord med SQL Server Native Client.
OLE DB-leverandør |
Version |
Download |
Nye funktioner |
OLE DB-driver 18.2.1 (MSOLEDBSQL) |
SQL Server 2017 |
Se OLE DB-driver til SQL Server-funktion og Udgivelsesnoter til Microsoft OLE DB-driver til SQL Server |
|
SQL Server Native Client (SQLNCLI) |
SQL Server 2005 til 2012 |
Er udfaset og må ikke benyttes |
|
OLE DB-driver (SQLOLEDB) |
Er udfaset og må ikke benyttes |
Oversigt over ODBC-søgeord
Følgende tabel indeholder en oversigt over de ODBC-nøgleord, der genkendes af SQL Server, og deres formål. Kun et undersæt genkendes af Access.
Nøgleord: |
Beskrivelse |
Addr |
Netværksadressen på den server, der kører en forekomst af SQL Server. |
AnsiNPW |
Angiver brug af ANSI-definerede adfærdsmønstre til at håndtere NULL-sammenligninger, udfyldning af tegndata, advarsler og NULL-sammenkædning (ja eller nej). |
APP |
Navnet på det program, der kalder SQLDriverConnect. |
ApplicationIntent |
Erklærer programmets arbejdsbyrde-type, når der oprettes forbindelse til en server (ReadOnly eller ReadWrite). |
AttachDBFileName |
Navnet på den primære fil i en database, der kan tilknyttes. |
AutoTranslate |
Angiver, om der sendes ANSI-tegnstrenge mellem klienten eller serveren, eller om der oversættes til Unicode (ja eller nej). |
Database |
Databasenavnet. Beskrivelse Formålet med forbindelsen. Driver Navnet på den driver, der blev returneret af SQLDrivers. |
DSN |
Navnet på en eksisterende ODBC-bruger eller systemdatakilde. Kryptér Angiver, om data skal krypteres, før de sendes via netværket (ja eller nej). |
Failover_Partner |
Navnet på den failover-partnerserver, der skal bruges, hvis der ikke kan oprettes forbindelse til den primære server. |
FailoverPartnerSPN |
Failover-partnerens SPN. |
Reserve |
Forældet nøgleord. |
FileDSN |
Navnet på en eksisterende ODBC-fildatakilde. Sprog SQL Server-sproget. |
MARS_Connection |
Angiver flere aktive resultatsæt (MARS) på forbindelsen til SQL Server 2005 (9.x) eller nyere (ja eller nej). |
MultiSubnetFailover |
Angiver, om der skal oprettes forbindelse til tilgængelighedsgruppens lyttefunktion i en SQL Servers tilgængelighedsgruppe eller en forekomst af en failover-klynge (ja eller nej). |
Net |
dbnmpntw angiver navngivne pipes, og dbmssocn angiver TCP/IP. |
PWD |
Login-adgangskoden til SQL Server. |
QueryLog_On |
Angiver logføring af forespørgsler, der kører længe (ja eller nej). |
QueryLogFile |
Den fulde sti og filnavnet på en fil, der skal bruges til at registrere data i forespørgsler, der kører længe. |
QueryLogTime |
Tegnstreng med cifre, der angiver grænsen (i millisekunder) til logføring af forespørgsler, der kører længe. |
QuotedId |
Angiver, om SQL Server bruger ISO-reglerne for brug af anførselstegn i SQL-sætninger (ja eller nej). |
Regional |
Angiver, om OBDC-driveren til SQL Server Native Client bruger klientindstillinger, når du konverterer valuta-, dato-eller klokkeslætsdata til tegndata (ja eller nej). |
SaveFile |
Navnet på en ODBC-fildatakilde, som attributterne for den aktuelle forbindelse gemmes i, hvis forbindelsen er korrekt. |
Server |
Navnet på en SQL Server-forekomst: Server på netværket, en IP-adresse eller et Configuration Manager-alias. |
ServerSPN |
Serverens SPN. |
StatsLog_On |
Aktiverer registreringen af ydeevnedata for en SQL Server Native Client-driver. |
StatsLogFile |
Den fulde sti og filnavnet på en fil, der bruges til at registrere ydeevnen for ODBC-driveren til SQL Server Native Client. |
Trusted_Connection |
Angiver, om Windows-godkendelsestilstand eller brugernavnet eller adgangskoden til SQL Server bruges til validering af login (ja eller nej). |
TrustServerCertificate |
Når dette bruges sammen med-kryptering, aktiveres krypteringen ved hjælp af et selvsigneret servercertifikat. |
UID |
Login-navn til SQL Server. |
UseProcForPrepare |
Forældet nøgleord. |
WSID |
Arbejdsstationens id, netværkets navn på den computer, hvor programmet er placeret. |
Oversigt over OLE DB-søgeord
Følgende tabel indeholder en oversigt over de OLE DB-nøgleord, der genkendes af SQL Server, og deres formål. Kun et undersæt genkendes af Access.
Nøgleord: |
Beskrivelse |
Addr |
Netværksadressen på den server, der kører en forekomst af SQL Server. |
APP |
Strengen, der identificerer programmet. |
ApplicationIntent |
Erklærer programmets arbejdsbyrde-type, når der oprettes forbindelse til en server (ReadOnly eller ReadWrite). |
AttachDBFileName |
Navnet på den primære fil i en database, der kan tilknyttes. |
AutoTranslate |
Konfigurerer OEM/ANSI-tegnoversættelse (sand eller falsk). |
Timeout for forbindelse |
Den tid (i sekunder), det tager at vente på, at påbegyndelsen af en af datakilde fuldføres. |
Aktuelt sprog |
Navn på SQL Server-sproget. |
Datakilde |
Navnet på en forekomst af SQL Server i organisationen. |
Database |
Databasenavnet. |
DataTypeCompatibility |
Et tal, der angiver den tilstand af datatype-håndtering, der bruges. |
Kryptér |
Angiver, om data skal krypteres, før de sendes via netværket (ja eller nej). |
FailoverPartner |
Navnet på den failover-server, der bruges til databasespejling. |
FailoverPartnerSPN |
Failover-partnerens SPN. |
Startkatalog |
Databasenavnet. |
Indledningsvist filnavn |
Navnet på den primære fil (herunder det fulde stinavn) for en database, der kan tilknyttes. |
Integreret sikkerhed |
Bruges til Windows-godkendelse (SSPI). |
Sprog |
SQL Server-sproget. |
MarsConn |
Angiver flere aktive resultatsæt (MARS) på forbindelsen til SQL Server 2005 (9.x) eller nyere (ja eller nej). |
Net |
Netværksbibliotek, der bruges til at oprette forbindelse til en forekomst af SQL Server i organisationen. |
Netværksadresse |
Netværksadressen til en forekomst af SQL Server i organisationen. |
PacketSize |
Størrelse på netværkspakke. Standardstørrelsen er 4096. |
Oplysninger om vedvarende sikkerhed |
Angiver, om vedvarende sikkerhed er aktiveret (sand eller falsk). |
PersistSensitive |
Angiver om permanent følsom er aktiveret (sandt eller falsk) |
Udbyder |
For SQL Server Native Client skal dette være SQLNCLI11. |
PWD |
Login-adgangskoden til SQL Server. |
Server |
Navnet på en SQL Server-forekomst: Server på netværket, en IP-adresse eller et Configuration Manager-alias. |
ServerSPN |
Serverens SPN. |
Timeout |
Den tid (i sekunder), det tager at vente på, at påbegyndelsen af en af datakilde fuldføres. |
Trusted_Connection |
Angiver, om Windows-godkendelsestilstand eller brugernavnet eller adgangskoden til SQL Server bruges til validering af login (ja eller nej). |
TrustServerCertificate |
Angiver, om et servercertifikat er godkendt (sandt eller falsk). |
UID |
Login-navn til SQL Server. |
Brug kryptering til data |
Angiv, om data skal krypteres, før de sendes via netværket (sandt eller falsk). |
UseProcForPrepare |
Forældet nøgleord. |
WSID |
Arbejdsstationens id, netværkets navn på den computer, hvor programmet er placeret. |