Minns din ungdoms glada dagar när alfabetssoppa var ditt favoritmål. Håll kvar dessa glada tankar i bakhuvudet när vi tar några smakprov ur alfabetssoppans databasversion. I följande avsnitt får du veta mer om grunderna i hur du får tillgång till en databas med anslutningssträngar och hur du använder ett gränssnitt för databasprogrammering i VBA-koden för Access.
Artikelinnehåll
Använda ODBC-drivrutin eller OLE DB-provider
Anslut programmässigt till SQL Server från Access
Sammanfattning av ODBC-drivrutinens versioner
Sammanfattning av OLE DB-providerversioner
Använda ODBC-drivrutin eller OLE DB-provider
Anslutningssträngar har funnits länge. Du kan definiera en formaterad anslutningssträng antingen i Access användargränssnitt eller i VBA-kod. En anslutningssträng (vare sig det handlar om ODBC eller OLE DB) skickar information direkt till databasen, till exempel serverplats, databasnamn, typ av säkerhet samt andra användbara alternativ. Till exempel:
ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;
Från början fanns SQL Server Native Client (SNAC), ett fristående bibliotek som innehöll ODBC- och OLEDB-teknologi, och som fortfarande finns tillgängligt för SQL Server-versionerna 2005 till 2012. Många tidigare program använde SNAC och stöds fortfarande för bakåtkompatibilitet, men vi rekommenderar inte att du använder det för utveckling av nya program. Du bör använda senare individuella, nedladdningsbara versioner av ODBC-drivrutinerna.
ODBC-drivrutiner
ODBC (Open Database Connectivity) är ett protokoll som du använder för att ansluta en Access-databas till en extern datakälla, till exempel Microsoft SQL Server. Vanligtvis använder du fildatakällor (även kallade DSN-filer) för att lägga till en anslutningssträng. Detta innebär att nyckelordet FILEDSN används för anslutningssträngen eller lagras i registret, varvid DSN-nyckelordet används. Du kan också använda VBA för att ange dessa egenskaper genom att använda en DSN-lös anslutningssträng.
Under åren har ODBC-drivrutinerna levererats i tre faser:
-
Före 2005 levererades ODBC-drivrutinerna med Windows Data Access Components (WDAC), som från början kallades för Microsoft Data Access Components (MDAC). Komponenterna levereras fortfarande med Windows för bakåtkompatibilitet. Mer information finns i Microsoft eller Windows Data Access Components.
-
ODBC-drivrutiner medföljer SNAC för SQL Server 2005 till SQL Server 2012.
-
Efter SQL Server 2012 har ODBC-drivrutinerna levererats individuellt och innehåller stöd för nya SQL Server-funktioner.
Undvik att använda ODBC-drivrutiner från de två första faserna till nyutveckling. Använd ODBC-drivrutiner från den tredje fasen.
OLE DB-providers
OLE DB (objektlänkning och inbäddning, databas) är ett nyare protokoll som du använder för att ansluta en Access-databas till en extern datakälla, till exempel Microsoft SQL Server. OLE DB kräver inte DSN, och ger även fullständig åtkomst till ODBC-datakällor och ODBC-drivrutiner.
Tips Vanligtvis använder du dialogrutan Datalänkegenskaper för att lägga till en OLE DB-anslutningssträng. Även om det inte går att öppna dialogrutan Datalänkegenskaper från Access, så kan du skapa en tom .txt-fil i Utforskaren, byta filtyp till .udl och sedan dubbelklicka på filen. När du har skapat en anslutningssträng ändrar du filtypen tillbaka till .txt.
Under åren har OLE DB-providers levererats i tre faser:
-
Före 2005 levererades OLE DB-providers med Windows Data Access Components (WDAC), som från början kallades för Microsoft Data Access Components (MDAC).
-
OLE DB-providers levererades med SQL Server 2005 till SQL Server 2017. De utfasades år 2011.
-
År 2017 började SQL Server OLE DB-providern att användas igen.
Den rekommenderade versionen just nu för utveckling av nya lösningar är OLE DB Driver 18 för SQL Server.
Optimera prestanda med en ODBC-anslutningssträng
Optimera prestanda genom att minimera nätverkstrafiken och minska åtkomsten för flera användare till SQL Server-databasen. Använd så få anslutningssträngar som möjligt genom att dela anslutningssträngar över flera postuppsättningar. Även om Ace helt enkelt llämnar över en anslutningssträng till servern kan den förstå och använda följande nyckelord: DSN, databas, UID, PWD och DRIVER bidrar till att minimera klient/server-kommunikation.
Obs! Om en ODBC-anslutning till en extern datakälla går förlorad försöker Access automatiskt att ansluta till den igen. Om försöket lyckas kan du fortsätta att arbeta. Om försöket misslyckas kan du fortfarande arbeta med objekt som inte är beroende av anslutningen. När du vill återansluta måste du stänga och öppna Access igen.
Rekommendationer när du använder både ODBC och OLE DB
Undvik att kombinera anslutningssträng och teknologier för databasåtkomst. Använd en ODBC-anslutningssträng för DAO. Använd en OLE DB-anslutningssträng för ADO. Om programmet innehåller VBA-kod där både DAO och ADO används, använder du ODBC-drivrutinen för DAO och OLE DB-providern för ADO. Sträva efter att få de senaste funktionerna och stöd för både ODBC respektive OLEDB.
ODBC använder termen drivrutin och OLE DB använder termen provider. Termerna beskriver samma typ av programvarukomponent men är inte utbytbara i syntaxen för anslutningssträngar. Använd rätt värde enligt anvisning.
Anslut programmässigt till SQL Server från Access
Det finns två huvudsakliga sätt att ansluta programmässigt till en SQL Server-databas från Access.
DAO
Ett Data Access-objekt (DAO) tillhandahåller ett abstrakt gränssnitt till en databas. Microsoft Data Access Objects (DAO) är den inbyggda modellen för programmeringsobjekt som går på djupet med Access och SQL Server och skapar, tar bort, ändrar och visar objekt, tabeller, fält, index, relationer, frågor, egenskaper och externa databaser.
Mer information finns i Microsoft Data Access Objects reference.
ADO
ActiveX Data Objects (ADO) tillhandahåller en programmeringsmodell på hög nivå och är tillgänglig i Access genom en referens till ett tredje parts bibliotek. ADO är enkelt att lära sig och tillåter klientprogram att få åtkomst till och hantera data från en mängd olika källor, däribland Access och SQL Server. Dess främsta fördelar är enkel användning, snabbhet, låg minnesbelastning och låga krav på diskutrymme. ADO har även stöd för nyckelfunktioner för bygg-och webbaserade program.
Mer information finns i Microsoft ActiveX Data Objects reference och Microsoft ActiveX Data Objects (ADO).
Vilken ska du välja?
I en Access-lösning som använder VBA-kod kan du använda DAO, ADO eller båda två som gränssnittsteknik för din databas. DAO är fortfarande standard i Access. Exempel: alla formulär och rapporter och Access-frågor använder DAO. Men när du migrerar till SQL Server bör du överväga att använda ADO för att effektivisera din lösning. Här följer allmänna riktlinjer som hjälper dig att bestämma när du ska använda DAO respektive ADO.
Använd DAO när du vill:
-
Skapa ett bundet formulär för läsning/skrivning utan att använda VBA.
-
Fråga för lokala tabeller.
-
Ladda ned data i temporära tabeller.
-
Använd direktfrågor som datakällor för rapporter eller formulär i skrivskyddat läge.
-
Definiera och använd ett TableDef- eller QueryDef-objekt i VBA.
Använd ADO när du vill:
-
Använd extra sätt att optimera, till exempel utföra asynkrona åtgärder.
-
Kör DDL- och DML-direktfrågor.
-
Nå data från SQL Server direkt genom postuppsättningar i VBA.
-
Skriv enklare kod för vissa aktiviteter, till exempel strömning av blobbar.
-
Anropa en lagrad procedur direkt med parametrar genom att använda ett kommandoobjekt i VBA.
Sammanfattning av ODBC-drivrutinens versioner
I följande tabell sammanfattas viktig information om ODBC-drivrutiner och versioner, nedladdningsplatser och funktionsstöd. Kontrollera att du använder rätt bit-version (64-bitars eller 32-bitars) av drivrutinen baserat på Windows och inte Office. Om du använder 32-bitarsversionen av Access i 64-bitarsversionen av Windows måste du installera 64-bitars drivrutiner, som innehåller de 32-bitars komponenter som krävs för Access.
Mer information finns i Använda nyckelord för anslutningssträng med SQL Server Native Client, Viktig information om ODBC till SQL Server i Windows (v.17), och Funktioner i Microsoft ODBC-drivrutinen för SQL Server i Windows (v.13,11).
Sammanfattning av OLE DB-providerversioner
I följande tabell sammanfattas viktig information om OLE DB-providerversioner, nedladdningsplatser och funktionsstöd. Kontrollera att du använder rätt bit-version (64-bitars eller 32-bitars) av drivrutinen baserat på Windows och inte Office. Om du använder 32-bitarsversionen av Access i 64-bitarsversionen av Windows måste du installera 64-bitars drivrutiner, som innehåller de 32-bitars komponenter som krävs för Access.
For more information, MEr information finns i Använda nyckelord för anslutningssträng med SQL Server Native Client.
OLE DB-provider |
Version |
Ladda ned |
Nya funktioner |
OLE DB-drivrutin 18.2.1 (MSOLEDBSQL) |
SQL Server 2017 |
Se OLE DB-drivrutin för funktionen SQL Server och Viktig information om Microsoft OLE DB-drivrutin för SQL Server |
|
SQL Server Native Client (SQLNCLI) |
SQL Server 2005 till 2012 |
Inaktuell, använd inte |
|
OLE DB-drivrutin (SQLOLEDB) |
Inaktuell, använd inte |
Sammanfattning av ODBC-nyckelord
I tabellen nedan sammanfattas de ODBC-nyckelord som identifieras av SQL Server och deras syfte. Endast en delmängd identifieras av Access.
Nyckelord |
Beskrivning |
Addr |
Nätverksadressen för servern som kör en instans av SQL Server. |
AnsiNPW |
Anger användningen av ANSI-definierade beteenden för hantering av NULL-jämförelser, utfyllnad av tecken, varningar och NULL-sammanfogning (Ja eller Nej). |
APP |
Namnet på programmet som anropar SQLDriverConnect. |
ApplicationIntent |
Förklarar typ av arbetsbelastning för program när du ansluter till en server (ReadOnly eller ReadWrite). |
AttachDBFileName |
Namnet på den primära filen i en bifogningsbar databas. |
AutoTranslate |
Anger om ANSI-teckensträngar ska skickas mellan klienten eller servern eller konverteras till Unicode (Ja eller Nej). |
Databas |
Databasnamnet. Beskrivning Syftet med anslutningen. Drivrutin Namnet på drivrutinen som returneras av SQLDrivers. |
DSN |
Namn på en befintlig ODBC-användare eller systemdatakälla. Kryptera Anger om data ska krypteras innan de skickas över nätverket (Ja eller Nej). |
Failover_Partner |
Servernamnet på redundanspartnern som ska användas om det inte går att ansluta till den primära servern. |
FailoverPartnerSPN |
SPN för redundanspartnern. |
Reserv |
Inaktuellt sökord. |
FileDSN |
Namn på en befintlig ODBC-datakälla. Språk SQL Server-språket. |
MARS_Connection |
Anger flera aktiva resultatuppsättningar (MARS) för anslutningen för SQL Server 2005 (9. x) eller senare (Ja eller Nej). |
MultiSubnetFailover |
Anger om du vill ansluta till tillgänglighetsgruppens lyssnare för en tillgänglighetsgrupp i SQL Server eller en instans av redundanskluster (Ja eller Nej). |
Net |
dbnmpntw indicates named pipes and dbmssocn indicates TCP/IP. |
PWD |
Lösenordet för inloggning till SQL Server. |
QueryLog_On |
Anger loggning av långvariga frågor (Ja eller Nej). |
QueryLogFile |
En fil med fullständiga sökvägar och filnamn som används för att logga data i långvariga frågor. |
QueryLogTime |
Teckensträng med siffror som anger tröskelvärdet (i millisekunder) vid loggning av långvariga frågor. |
QuotedId |
Anger om SQL Server använder ISO-regler vid användning av citattecken i SQL-uttryck (Ja eller Nej). |
Regional |
Anger om ODBC-drivrutinen för SQL Server Native Client använder klientinställningar vid konvertering av valuta-, datum-eller tidsdata till teckendata (Ja eller Nej). |
SaveFile |
Namn på en ODBC-datakälla där attributen för den aktuella anslutningen sparas om anslutningen lyckas. |
Server |
Namnet på en SQL Server-instans: Server i nätverket, IP-adress eller alias för Konfigurationshanteraren. |
ServerSPN |
SPN för servern. |
StatsLog_On |
Gör det möjligt att samla in prestandadata i SQL Server Native Client. |
StatsLogFile |
Fullständiga sökvägar och filnamn på en fil som används för registrering av prestandastatistik för ODBC-drivrutiner för SQL Server Native Client. |
Trusted_Connection |
Anger om Windows-autentiseringsläge eller användarnamn eller lösenord för SQL Server används för inloggningsverifiering (Ja eller Nej). |
TrustServerCertificate |
Med Kryptera kan kryptering användas med ett självsignerat servercertifikat. |
UID |
Inloggningsnamnet för SQL Server. |
UseProcForPrepare |
Inaktuellt sökord. |
WSID |
Identifierare för arbetsstationen, nätverksnamnet på den dator där programmet finns. |
Sammanfattning av OLE DB-nyckelord
I tabellen nedan sammanfattas de OLE DB-nyckelord som identifieras av SQL Server och deras syfte. Endast en delmängd identifieras av Access.
Nyckelord |
Beskrivning |
Addr |
Nätverksadressen för servern som kör en instans av SQL Server. |
APP |
Sträng som identifierar programmet. |
ApplicationIntent |
Förklarar typ av arbetsbelastning för program när du ansluter till en server (ReadOnly eller ReadWrite). |
AttachDBFileName |
Namnet på den primära filen i en bifogningsbar databas. |
AutoTranslate |
Konfigurerar översättning av OEM/ANSI-tecken (Sant eller Falskt). |
Anslutningstimeout |
Den tid (i sekunder) det tar för initiering av datakällan att slutföras. |
Aktuellt språk |
Namnet på SQL Server-språket. |
Datakälla |
Namnet på en instans av SQL Server i organisationen. |
Databas |
Databasnamnet. |
DataTypeCompatibility |
Ett tal som anger vilken typ av datatypshantering som kommer att användas. |
Kryptera |
Anger om data ska krypteras innan de skickas över nätverket (Ja eller Nej). |
FailoverPartner |
Namnet på den failover-server som används för databasspegling. |
FailoverPartnerSPN |
SPN för redundanspartnern. |
Första katalogen |
Databasnamnet. |
Första filnamn |
Namnet på den primära filen (inklusive fullständig sökväg) för en bifogningsbar databas. |
Integrerad säkerhet |
Används för Windows-autentisering (SSPI). |
Språk |
SQL Server-språket. |
MarsConn |
Anger flera aktiva resultatuppsättningar (MARS) för anslutningen för SQL Server 2005 (9. x) eller senare (Ja eller Nej). |
Net |
Nätverksbiblioteket som används för att upprätta en anslutning till en instans av SQL Server i organisationen. |
Nätverksadress |
Nätverksadressen på en instans av SQL Server i organisationen. |
PacketSize |
Storlek på nätverkspaket. Standardvärdet är 4096. |
Spara säkerhetsinformation |
Anger om persist security är aktiverat (Sant eller Falskt). |
PersistSensitive |
Anger om persist sensitive är aktiverat (Sant eller Falskt). |
Provider |
För SQL Server Native Client ska detta vara SQLNCLI11. |
PWD |
Lösenordet för inloggning till SQL Server. |
Server |
Namnet på en SQL Server-instans: Server i nätverket, IP-adress eller alias för Konfigurationshanteraren. |
ServerSPN |
SPN för servern. |
Timeout |
Den tid (i sekunder) det tar för initiering av datakällan att slutföras. |
Trusted_Connection |
Anger om Windows-autentiseringsläge eller användarnamn eller lösenord för SQL Server används för inloggningsverifiering (Ja eller Nej). |
TrustServerCertificate |
Anger om ett servercertifikat verifieras (Sant eller Falskt). |
UID |
Inloggningsnamnet för SQL Server. |
Använd kryptering för data |
Anger om data ska krypteras innan de skickas över nätverket (Sant eller Falskt). |
UseProcForPrepare |
Inaktuellt sökord. |
WSID |
Identifierare för arbetsstationen, nätverksnamnet på den dator där programmet finns. |