Denken Sie an die glücklicheren Tage Ihrer Kindheit zurück, als Sie viel Spaß mit Ihrer Buchstabensuppe hatten. Behalten Sie diese Erinnerungen im Hinterkopf, wenn wir die Datenbankversion von Alphabet Soup erkunden und testen. In den folgenden Abschnitten werden die Grundlagen des Zugriffs auf eine Datenbank mithilfe von Verbindungszeichenfolgen und der Verwendung der Datenbank-API in Ihrem Access VBA-Code beschrieben.

Inhalt dieses Artikels
Verwendung eines ODBC-Treibers oder OLE DB-Anbieters
Programmschnittstelle mit SQL Server über Access
Zusammenfassung der ODBC-Treiberversion
Zusammenfassung der OLE DB-Anbieterversionen
Übersicht über ODBC-Schlüsselwörter
Übersicht über OLE DB-Schlüsselwörter
Verwendung eines ODBC-Treibers oder OLE DB-Anbieters
Verbindungszeichenfolgen gibt es schon seit einiger Zeit. Eine formatierte Verbindungszeichenfolge kann über die Access-Benutzeroberfläche oder im VBA-Code definiert werden. Eine Verbindungszeichenfolge (entweder ODBC oder OLE DB) übergibt Informationen direkt an die Datenbank, z. B. Serverstandort, Datenbankname, Sicherheitstyp und andere nützliche Optionen. Beispiel:
ODBC;DRIVER=SQL Server;SERVER="MiServidor";DATABASE="MyHRdb";TRUSTED_CONNECTION=Sí
Provider=SQLOLEDB;Data Source=MyServer;Home Catalog=MyHRdb; Integrierte Sicherheit=SSPI;
Zuerst gab es SQL Server Native Client (SNAC), eine eigenständige Bibliothek, die ODBC- und OLEDB-Technologien umfasste und immer noch für die SQL Server-Versionen 2005 bis 2012 verfügbar ist. Viele ältere Anwendungen nutzten SNAC und es wird immer noch für Abwärtskompatibilitätsversionen unterstützt, ist es aber Es wird nicht empfohlen, es für die Entwicklung neuer Anwendungen zu verwenden. Zum Herunterladen müssen Sie neuere Versionen der ODBC-Treiber verwenden.
odbc-Treiber
Open Database Connectivity (ODBC) ist ein Protokoll, mit dem eine Verbindung zwischen einer Access-Datenbank und einer externen Datenquelle wie Microsoft SQL Server hergestellt werden kann. Dateidatenquellen (auch als DSN-Dateien bezeichnet) werden normalerweise zum Hinzufügen einer Verbindungszeichenfolge verwendet. In diesem Fall wird das Schlüsselwort FILEDSN in der Verbindungszeichenfolge verwendet, während das Schlüsselwort DSN beim Speichern in der Registrierung verwendet wird. Alternativ können Sie VBA verwenden, um diese Eigenschaften mithilfe der Verbindungszeichenfolge „Kein DSN“ festzulegen.
Im Laufe der Jahre gab es bei der Veröffentlichung von ODBC-Treibern drei Phasen:
-
Vor 2005 wurden ODBC-Treiber mit Windows Data Access Components (WDAC) ausgeliefert, ursprünglich Microsoft Data Access Components (MDAC) genannt. Aus Gründen der Abwärtskompatibilität sind diese Komponenten weiterhin in Windows integriert. Weitere Informationen finden Sie unterMicrosoft Windows-Datenzugriffskomponenten.
-
ODBC-Treiber werden mit SNAC für SQL Server 2005 bis SQL Server 2012 ausgeliefert.
-
Ab SQL Server 2012 werden ODBC-Treiber separat geliefert und unterstützen neue SQL Server-Funktionen.
ODBC-Treiber aus den ersten beiden Phasen sollten nicht für Neuentwicklungen verwendet werden. Verwenden Sie stattdessen ODBC-Treiber von Drittanbietern.
OLEDB-Dienstleister
Object Database Linking and Embedding (OLE DB) ist ein neueres Protokoll, mit dem eine Verbindung zwischen einer Access-Datenbank und einer externen Datenquelle wie Microsoft SQL Server hergestellt werden kann. OLE DB erfordert keinen DSN und bietet außerdem vollständigen Zugriff auf ODBC-Datenquellen und ODBC-Treiber.
BeratungNormalerweise ist der Dialog fürEigenschaften der DatenverbindungWird zum Hinzufügen einer OLE DB-Verbindungszeichenfolge verwendet. Obwohl es keine Möglichkeit gibt, einen Dialog zu führenEigenschaften der Datenverbindungaus Access, aber Sie können eine leere TXT-Datei im Windows Explorer erstellen, den Dateityp in .udl ändern und dann auf die Datei doppelklicken. Erstellen Sie eine Reihe von Links und setzen Sie dann den Dateityp wieder auf .txt.
Im Laufe der Jahre gab es bei der Bereitstellung von OLE DB-Anbietern drei Phasen:
-
Vor 2005 umfassten OLE DB-Anbieter Windows Data Access Components (WDAC), ursprünglich Microsoft Data Access Components (MDAC) genannt.
-
OLE DB-Anbieter sind in SNAC für SQL Server 2005 bis SQL Server 2017 enthalten. Der Support endete 2011.
-
Ab 2017 wird der OLE DB Provider für SQL Server wieder unterstützt.
Die derzeit empfohlene Version für die Entwicklung neuer Lösungen ist OLE DB Driver 18 für SQL Server.
Optimieren der Leistung mit einer ODBC-Verbindungszeichenfolge
Verwenden Sie so wenige Verbindungszeichenfolgen wie möglich, um die Leistung zu optimieren, den Netzwerkverkehr zu reduzieren und den Zugriff mehrerer Benutzer auf eine SQL Server-Datenbank zu reduzieren, indem Sie Verbindungszeichenfolgen auf mehrere Recordsets aufteilen. Obwohl der ACE nur die Verbindungszeichenfolge an den Server übergibt, versteht und verwendet er die folgenden Schlüsselwörter: DSN, DATABASE, UID, PWD und DRIVER, um die Kommunikation zwischen dem Client und dem Server zu minimieren.
BeachtenWenn die ODBC-Verbindung zu einer externen Datenquelle verloren geht, versucht Access automatisch, die Verbindung wiederherzustellen. Wenn die Wiederherstellung erfolgreich ist, können Sie weiterarbeiten. Wenn dies fehlschlägt, können Sie mit verbindungsunabhängigen Objekten weiterarbeiten. Um die Verbindung wiederherzustellen, schließen Sie Access und öffnen Sie es erneut.
Empfehlungen zur Verwendung von ODBC und OLE DB
Vermeiden Sie die Vermischung von Verbindungszeichenfolgen und Datenbankzugriffstechnologien. Verwenden Sie eine ODBC-Verbindungszeichenfolge für das DAO. Verwenden Sie ein Array von OLE DB-Verbindungen für ADO. Wenn Ihre Anwendung VBA-Code enthält, der DAO und ADO verwendet, verwenden Sie den ODBC-Treiber für DAO und den OLE DB-Anbieter für ADO. Aktualisieren Sie nach Möglichkeit die Funktionen und die Unterstützung für ODBC und OLE DB.
ODBC verwendet den Begriff Treiber und OLE DB den Begriff Anbieter. Die Begriffe beschreiben denselben Typ von Softwarekomponente, sind jedoch in der Verbindungszeichenfolgensyntax nicht austauschbar. Verwenden Sie den korrekten Wert wie dokumentiert.
ganz oben auf der Seite
Programmschnittstelle mit SQL Server über Access
Grundsätzlich gibt es zwei Möglichkeiten, über Access programmgesteuert eine Verbindung zu einer SQL Server-Datenbank herzustellen.
DAO
Ein Data Access Object (DAO) stellt eine abstrakte Schnittstelle zu einer Datenbank bereit. Microsoft Data Access Objects (DAO) ist ein natives Objektprogrammiermodell, mit dem Sie Objekte, Tabellen, Felder, Indizes, Beziehungen, Abfragen, Eigenschaften und externe Datenbanken im Herzen von Access und SQL Server erstellen, löschen, ändern und auflisten können.
Weitere Informationen finden Sie unterEine Microsoft Data Access-Objektreferenz.
ALHARACA
ActiveX-Datenobjekte (ADO) stellen ein Programmiermodell auf hoher Ebene bereit und sind in Access durch Verweis auf eine Bibliothek eines Drittanbieters verfügbar. ADO ist leicht zu erlernen und ermöglicht Clientanwendungen den Zugriff auf und die Bearbeitung von Daten aus einer Vielzahl von Quellen, einschließlich Access und SQL Server. Seine Hauptvorteile sind Benutzerfreundlichkeit, hohe Geschwindigkeit und geringer Speicher- und Festplattenbedarf. ADO unterstützt auch die wichtigsten Funktionen zum Erstellen von Webanwendungen.
Weitere Informationen finden Sie unterMicrosoft ActiveX-Datenobjekte – ReferenzGMicrosoft ActiveX-Datenobjekte (ADO).
Was solltest du anziehen?
In einer Access-Lösung, die VBA-Code verwendet, können Sie DAO, ADO oder beide als Datenbankschnittstellentechnologie verwenden. DAO ist immer noch die Standardoption in Access. Beispielsweise verwenden alle Access-Formulare, -Berichte und -Abfragen DAOs. Wenn Sie jedoch auf SQL Server migrieren, wird die Verwendung von ADO empfohlen, um Ihre Lösung effizienter zu gestalten. Hier sind einige allgemeine Richtlinien, die Ihnen bei der Entscheidung helfen sollen, ob Sie DAO oder ADO verwenden sollten.
Verwenden Sie DAO, um:
-
Erstellen Sie ein Formular mit Lese-/Schreibzugriff, ohne VBA zu verwenden.
-
Lokale Tabellen abfragen.
-
Laden Sie Daten in temporäre Tabellen herunter.
-
Verwenden Sie Schrittabfragen als Datenquellen für Berichte oder Formulare im schreibgeschützten Modus.
-
Definieren und verwenden Sie ein TableDef- oder QueryDef-Objekt in VBA.
Verwenden Sie ADO, um:
-
Durch die Nutzung zusätzlicher Optimierungsmöglichkeiten, z.B. B. Durchführen asynchroner Vorgänge.
-
Führen Sie DDL- und DML-Pass-Abfragen aus.
-
Direkter Zugriff auf SQL Server-Daten über Recordsets in VBA.
-
Schreiben Sie einfacheren Code für bestimmte Aufgaben, z. B. Blob-Streaming.
-
Rufen Sie eine gespeicherte Prozedur direkt mithilfe von Parametern über das Befehlsobjekt in VBA auf.
ganz oben auf der Seite
Zusammenfassung der ODBC-Treiberversion
Die folgende Tabelle fasst wichtige Informationen zu ODBC-Treiberversionen, Download-Speicherorten und Funktionsunterstützung zusammen. Stellen Sie sicher, dass Sie die richtige Bit-Version (64-Bit oder 32-Bit) des Windows-basierten Treibers verwenden, nicht Office. Wenn Sie 32-Bit-Access unter 64-Bit-Windows verwenden, installieren Sie die 64-Bit-Treiber, die die 32-Bit-Komponenten enthalten, die Access benötigt.
Weitere Informationen finden Sie unterVerwenden von Schlüsselwörtern für Verbindungszeichenfolgen mit einem nativen SQL Server-Client,Versionshinweise zu ODBC für SQL Server unter Windows (V17).GFunktionen des Microsoft ODBC-Treibers für SQL Server unter Windows (v13.11).
odbc-Treiber | Ausführung | Herunterladen | neue Funktion |
ODBC-Treiber 17.0 bis 17.3 | Server SQL 2017 | Herunterladen | ODBC-Treiber 17.3 Verwendung von Azure Active Directory mit dem ODBC-Treiber Einschränkungen des ODBC-Treibers bei Verwendung von „Immer verschlüsselt“ Verwendung von XA-Transaktionen ODBC 17.2-Treiber Verwenden von Always Encrypted mit dem ODBC-Treiber für SQL Server Datenklassifizierung UTF-8-Serverkodierung mit Sortierung und Unicode-Unterstützung ODBC 17.1-Treiber Verwenden von Always Encrypted mit dem ODBC-Treiber für SQL Server ODBC-Treiber 17.0 immer verschlüsselt UsarFMONLYVerwenden Sie Legacy-Metadaten in Sonderfällen, die temporäre Tabellen erfordern. beratenVersionshinweise zu ODBC für SQL Server unter Windows. Unterschiede bei der Verwendung verwalteter Instanzen (ODBC Version 17) |
ODBC 13.1-Treiber | SQL Server 2016 SP1, SQL Azure | Herunterladen | immer verschlüsselt Azure Active Directory Always On-Verfügbarkeitsgruppen Treiberunterstützte Verbindungen im ODBC-Treiber für SQL Server speichern |
ODBC 13.0-Treiber | Server SQL 2016 | Herunterladen | Internationalisierter Domainname (Nombre de dominio internationalizado, IDN) |
ODBC 11.0-Treiber | Server SQL 2005 bis 2012 | Herunterladen | Speichern der Controller-Verbindung Verbindungspersistenz im Windows ODBC-Treiber asynchrone Ausführung Dienstprinzipalnamen (SPNs) in Clientverbindungen (ODBC) Funktionen des Microsoft ODBC-Treibers für SQL Server unter Windows |
ganz oben auf der Seite
Zusammenfassung der OLE DB-Anbieterversionen
Die folgende Tabelle fasst wichtige Informationen zu OLE DB-Anbieterversionen, Download-Speicherorten und Funktionsunterstützung zusammen. Stellen Sie sicher, dass Sie die richtige Bit-Version (64-Bit oder 32-Bit) des Windows-basierten Treibers verwenden, nicht Office. Wenn Sie 32-Bit-Access unter 64-Bit-Windows verwenden, installieren Sie die 64-Bit-Treiber, die die 32-Bit-Komponenten enthalten, die Access benötigt.
Weitere Informationen finden Sie unterVerwenden von Schlüsselwörtern für Verbindungszeichenfolgen mit einem nativen SQL Server-Client.
OLEDB-Dienstleister | Ausführung | Herunterladen | neue Funktion |
OLE DB-Treiber 18.2.1 (MSOLEDBSQL) | Server SQL 2017 | Herunterladen | OLE DB-Treiber für SQL Server-FunktionGVersionshinweise zum Microsoft OLE DB-Treiber für SQL Server. |
SQL Server Native Client (SQLNCLI) | Server SQL 2005 bis 2012 | veraltet, nicht verwenden | |
OLEDB-Steuerung (SQLOLEDB) | veraltet, nicht verwenden |
ganz oben auf der Seite
Übersicht über ODBC-Schlüsselwörter
Die folgende Tabelle fasst die von SQL Server erkannten ODBC-Schlüsselwörter und ihren Zweck zusammen. Access erkennt nur eine Teilmenge.
Stichwort | Beschreibung |
Adresse | Die Netzwerkadresse des Servers, auf dem die Instanz von SQL Server ausgeführt wird. |
AnxiNPW | Gibt die Verwendung von ANSI-definierten Verhaltensweisen für die Behandlung von Nullvergleichen, Zeichenauffüllungen, Warnungen und Nullverkettungen an (ja oder nein). |
ANWENDUNG | Der Name der Anwendung, die SQLDriverConnect aufruft. |
Anwendungsabsicht | Deklariert die Art der Anwendungslast beim Herstellen einer Verbindung zum Server (schreibgeschützt oder schreibgeschützt). |
Hängen Sie den Namen der DB-Datei an | Der Name der Hauptdatenbankdatei, die angehängt werden kann. |
Automatische Übersetzung | Gibt an, ob ANSI-Zeichenfolgen zwischen dem Client oder Server übertragen oder in Unicode übersetzt werden (Ja oder Nein). |
Datenbank | Name der Datenbank. Beschreibung Zweck der Verbindung. Treiber Der Name des von SQLDrivers zurückgegebenen Treibers. |
DSN | Der Name einer vorhandenen ODBC-Benutzer- oder Systemdatenquelle. Verschlüsselung Zeigt an, ob die Daten verschlüsselt werden, bevor sie über das Netzwerk gesendet werden (Ja oder Nein). |
Failover-Partner | Der Name des Upgrade-Partnerservers, der verwendet werden soll, wenn der primäre Server nicht kontaktiert werden kann. |
SPN-Failover-Partner | SPN des Upgrade-Partners. |
zurück | Veraltetes Schlüsselwort. |
ArchivoDSN | Der Name einer vorhandenen ODBC-Dateidatenquelle. Sprachname der SQL Server-Sprache. |
MARS_Verbindung | Definiert die Verwendung mehrerer aktiver Ergebnismengen (MARS) in SQL Server 2005 (9.x) oder höher (Ja oder Nein). |
Failover mehrerer Subnetze | Gibt an, ob eine Verbindung (Ja oder Nein) mit dem Verfügbarkeitsgruppen-Listener der SQL Server-Verfügbarkeitsgruppe oder der Upgrade-Cluster-Instanz hergestellt werden soll. |
Neto | dbnmpntw gibt Named Pipes an und dbmssocn gibt TCP/IP an. |
PCD | Passwort für die Anmeldung bei SQL Server. |
ConsultaLog_On | Gibt die Protokollierung langer Abfragen an (Ja oder Nein). |
Protokolldatei abfragen | Der vollständige Pfad und Name der Datei, die zum Protokollieren der langen Abfragedaten verwendet wird. |
Protokollzeit abfragen | Eine Zeichenfolge, die den Schwellenwert (in Millisekunden) für die Protokollierung langer Abfragen angibt. |
Die angegebene ID | Gibt an, ob SQL Server die ISO-Regeln bezüglich der Verwendung von Anführungszeichen in SQL-Anweisungen befolgen soll (Ja oder Nein). |
Regional | Gibt an, ob der SQL Server Native Client ODBC-Treiber Clienteinstellungen verwendet, wenn er Währungs-, Datums- oder Zeitdaten in Zeichendaten umwandelt (Ja oder Nein). |
Speicher die Datei | Der Name der ODBC-Datenquellendatei, die die Attribute der aktuellen Verbindung speichert, wenn die Verbindung erfolgreich ist. |
Server | Name der SQL Server-Instanz: Server im Netzwerk, IP-Adresse oder Alias des Konfigurationsmanagers. |
SPN des Servers | SPN des Servers. |
Statistiken Login_On | Ermöglicht die Protokollierung von Leistungsdaten im SQL Server Native Client ODBC-Treiber. |
Dnevnik-Statistiken | Der vollständige Pfad und Name der Datei, die zum Aufzeichnen der Leistungsstatistiken des SQL Server Native Client-ODBC-Treibers verwendet wird. |
vertrauenswürdige_Verbindung | Gibt an, ob die Windows-Authentifizierungsmethode oder der SQL Server-Benutzername und das Kennwort für die Anmeldeüberprüfung verwendet werden sollen (Ja oder Nein). |
Vertrauenswürdiges Serverzertifikat | Bei Verwendung mit Verschlüsselung wird die Verschlüsselung durch das selbstsignierte Zertifikat des Servers aktiviert. |
UID | SQL Server-Anmeldename. |
UsarProcForPrepare | Veraltetes Schlüsselwort. |
WSID | Workstation-ID, Netzwerkname des Computers, auf dem sich die Anwendung befindet. |
ganz oben auf der Seite
Übersicht über OLE DB-Schlüsselwörter
Die folgende Tabelle fasst die von SQL Server erkannten OLE DB-Schlüsselwörter und ihren Zweck zusammen. Access erkennt nur eine Teilmenge.
Stichwort | Beschreibung |
Adresse | Die Netzwerkadresse des Servers, auf dem die Instanz von SQL Server ausgeführt wird. |
ANWENDUNG | Eine Zeichenfolge, die die Anwendung identifiziert. |
Anwendungsabsicht | Deklariert die Art der Anwendungslast beim Herstellen einer Verbindung zum Server (schreibgeschützt oder schreibgeschützt). |
Hängen Sie den Namen der DB-Datei an | Der Name der Hauptdatenbankdatei, die angehängt werden kann. |
Automatische Übersetzung | Konfigurieren Sie die OEM/ANSI-Zeichenübersetzung („true“ oder „false“). |
Zeitüberschreitung der Verbindung | Zeit (in Sekunden), die auf den Abschluss der Datenquelleninitialisierung gewartet werden soll. |
aktuelle Sprache | Name der SQL Server-Sprache. |
Datenquelle | Der Name der SQL Server-Instanz in der Organisation. |
Datenbank | Name der Datenbank. |
Datentypkompatibilität | Eine Zahl, die angibt, welche Methode zur Verarbeitung des Datentyps verwendet wird. |
codieren | Gibt an, ob Daten verschlüsselt werden sollen, bevor sie über das Netzwerk gesendet werden (Ja oder Nein). |
Failover-Partner | Der Name des Upgrade-Servers, der für die Datenbankspiegelung verwendet werden soll. |
SPN-Failover-Partner | SPN des Upgrade-Partners. |
Erster Katalog | Name der Datenbank. |
Ursprünglicher Dateiname | Der primäre Datenbankname (einschließlich des vollständigen Pfadnamens) der Datenbank, die angehängt werden kann. |
Integrierte Sicherheit | Wird für die Windows-Authentifizierung (SSPI) verwendet. |
Sprache | Name der SQL Server-Sprache. |
MarteConn | Definiert die Verwendung mehrerer aktiver Ergebnismengen (MARS) in SQL Server 2005 (9.x) oder höher (Ja oder Nein). |
Neto | Net-Library wird verwendet, um eine Verbindung zu einer Instanz von SQL Server in einer Organisation herzustellen. |
Internetadresse | Die Netzwerkadresse der SQL Server-Instanz in der Organisation. |
Packungsgrösse | Netzwerkpaketgröße. Der Standardwert ist 4096. |
Bewahren Sie Sicherheitsinformationen auf | Gibt an, ob dauerhafte Sicherheit aktiviert ist („true“ oder „false“). |
Bleiben Sie sensibel | Gibt an, ob Persist Sensitive aktiviert ist („true“ oder „false“). |
Anbieter | Für den SQL Server Native Client muss „SQLNCLI11“ verwendet werden. |
PCD | Passwort für die Anmeldung bei SQL Server. |
Server | Name der SQL Server-Instanz: Server im Netzwerk, IP-Adresse oder Alias des Konfigurationsmanagers. |
SPN des Servers | SPN des Servers. |
Die Zeit ist um | Zeit (in Sekunden), die auf den Abschluss der Datenquelleninitialisierung gewartet werden soll. |
vertrauenswürdige_Verbindung | Gibt an, ob die Windows-Authentifizierungsmethode oder der SQL Server-Benutzername und das Kennwort für die Anmeldeüberprüfung verwendet werden sollen (Ja oder Nein). |
Vertrauenswürdiges Serverzertifikat | Gibt an, ob das Zertifikat des Servers verifiziert ist („true“ oder „false“). |
UID | SQL Server-Anmeldename. |
Verwenden Sie Verschlüsselung für Daten | Gibt an, ob die Daten verschlüsselt werden, bevor sie über das Netzwerk gesendet werden („true“ oder „false“). |
UsarProcForPrepare | Veraltetes Schlüsselwort. |
WSID | Workstation-ID, Netzwerkname des Computers, auf dem sich die Anwendung befindet. |
ganz oben auf der Seite
Verwalten von ODBC-Datenquellen
Verwaltung verknüpfter Tabellen