Zugreifen auf mehrere Datenbanken in einer SQL-Abfrage in VB 3.0

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 113701
Disclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.
Zusammenfassung
Beim Zugriff auf Daten aus mehr als einer Datenquelle gleichzeitig in einer einzigen Abfrage möchten Sie wahrscheinlich am schnellsten und die meisten Generalmethod – Anfügen von Tabellen aus verschiedenen Datenquellen zu SingleMicrosoft Access-Datenbank verwenden. An diesem Punkt, zwei Differentdatabases erstellt werden kann, als ob alle Tabellen verbunden, Span oder lokale Werelocal zu Microsoft Access-Datenbank abgefragt.
Anfügen von Tabellen hat leistungsfähige und Vorteile – besonders wenn Abfragen wiederholt ausgeführt werden. Jedoch manchmal Youmight wollen langsamere Route in diesem Artikel beschriebene Verwendung müssen Sie ad-hoc-Abfragen, die mehrere Datenbanken umfassen. Diese Articleexplains wie diese langsamer datenbankübergreifenden Abfragen.
Weitere Informationen
Es gibt zwei Methoden, mit denen Sie angeben, dass eine Datenbank außerhalb der Onethat geöffnet ist.

Methode 1:

Microsoft Access SQL stellt eine IN-Klausel, die Anexternal Datenbank ein als aktuelle Datenbank herstellen kann. Diese Methoddoes jedoch beschränken Sie nur einer externen Datenbank gleichzeitig.

Die IN-Klausel besteht aus zwei Teilen, Datenbanknamen und die Verbindungszeichenfolge. Der Datenbankname ist ein vollqualifizierter Pfad zur Datei oder zum Verzeichnis dieDatenbank-Datei und die Verbindungszeichenfolge enthält Datenbanktyp und Otherparameters Bedarf.

Um eine externe Datenbank anzugeben, fügen Sie ein Semikolon (;), die Connectpart und einfache oder doppelte Anführungszeichen einschließen. Der Followingexample wird mit der IN-Klausel eine Tabelle (Kunden) in einer dBASE-IVdatabase (Verkauf) angegeben:
SELECT Customers.CustomerIDFROM CustomersIN "C:\DBASE\DATA\SALES" "dBASE IV;"WHERE Customers.CustomerID Like "A*"				
In Visual Basic können Sie ein Dynaset aus obigen Beispiel mithilfe der folgenden Visual Basic-Code erstellen:
Dim db As DatabaseDim ds As DynasetDim sql As String' Open a database:Set db = OpenDatabase("C:\VB\BIBLIO.MDB")' Build the select statement, referencing the external dBASE IV file:sql = "SELECT Customers.CustomerID, FROM Customers"sql = sql & " IN 'C:\DBASE\DATA\SALES' 'dBASE IV;'"sql = sql & " WHERE Customers.CustomerID Like 'A*'"' Create the recordset:Set ds = db.CreateDynaset(sql)' Loop through and display the records:While Not ds.EOF   For i = 0 To ds.Fields.Count - 1      Print ds(i); "  ";   Next i   Print   ds.MoveNextWend				

Methode 2

Microsoft Access-Datenbankmodul wird Visual Basic Version 3.0 Canparse SQL-Abfragen auf die Verbindungszeichenfolge verwendet, um eine Databaseobject zu öffnen. Die From-Klausel der SQL-Anweisung akzeptiert eine voll Qualifiedtable, ermöglicht die Platzierung der Verbindungszeichenfolge im Squarebrackets vor dem Tabellennamen. Die Verbindungszeichenfolge ist Thetable Namen durch einen Punkt getrennt. Diese Methode können Sie gleichzeitig eine Verbindung zu Datenbanken Multipleexternal.

Für den Zugriff auf eine Tabelle in einer von zwei Datenbanken innerhalb einer einzelnen SELECT-Anweisung mit der folgenden Syntax:
SELECT tbl1.fld1,tbl2.fld1FROM [odbc;dsn=datasource;database=pubs;Username= <username>;PWD=<strong password>].tbl1,[dbase iii;database=C:\DBASE3].tbl2WHERE tbl1.fld1 = tbl2.fld1				
Dieses Beispiel verknüpft zwei Tabellen aus verschiedenen Datenbanken, eine ODBCdata-Quelle und eine dBASE III-Tabelle im Verzeichnis C:\DBASE3.

Im Allgemeinen entspricht die Verbindungszeichenfolge verwendet, hier in Klammern Connect-Eigenschaft von TableDef beim Anfügen oder vierte Remoteobjekts OpenDatabase-Anweisung. In einem der drei abhängig werden Datenbank (ODBC, ISAM oder Microsoft Access).

Für ODBC-Datenbanken:
   [odbc;dsn=datasource;database=thedatabasename;Username=<username>;PWD=<strong password>]				
ISAM-Datenbanken:
   [paradox 3.X;database=C:\DATABASE\PARADOX3]   [foxpro 2.5;database=C:\DATABASE\FOX25]   [dbase iv;database=C:\DATABASE\DBASEIV]   [btrieve;database=C:\DATABASE\BTRIEVE\FILE.DDF]				
Für Microsoft Access-Datenbanken:
   [;database=C:\VB\BIBLIO.MDB]				
Beachten Sie das vorangestellte Semikolon für Microsoft Access-Datenbanken ist wichtig. Dies ist genau die gleiche Zeichenfolge musste die Connect-Eigenschaft des aTableDef Objekts ausfüllen, bevor Sie eine Microsoft Access-Formatdatabase die Tabelle zuordnen. Das vorangestellte Semikolon ist ein Platzhalter für die Spezifikation nicht benötigte Databaseformat und ermöglicht die "Datenbank ="-Klausel folgen.

Codebeispiel mehrere Datenbankabfrage

Dieses Beispiel erstellt ein Dynaset zwei Tabellen aus zwei Datenquellen, einen SQL Server und Microsoft Access-Datenbank. Die TestTabtable für SQL Server und die T1-Tabelle in Microsoft Accessdatabase.

Hinweis Ändern Sie <username>und <strong password="">auf die richtigen Werte, bevor Sie diesen Code ausführen. Überprüfen Sie Benutzername die erforderlichen Berechtigungen für diesen Vorgang in der Datenbank.</strong> </username>
Dim db As databaseDim ds As dynasetDim sql As String, Uid$, Pwd$Set db = OpenDatabase("C:\VB\BIBLIO.MDB")' This obtains a valid database object. It does not have to be a Microsoft' Access database; the following works equally as well:' Set db = OpenDatabase("C:\FOXPRO25\", 0, 0, "foxpro 2.5")' The values here are hard-coded, but you could prompt the user for their' user id and password.Uid$ = <username>Pwd$ = <strong password>' Build the select statement, concatenating the user's id and password:sql = "SELECT T1.F2, TestTab.F2, TestTab.F3"sql = sql & " FROM [;database=C:\ACCESS\DB1.MDB].T1 , "sql = sql & " [odbc;dsn=texas;database=playpen;Username=" & Uid$sql = sql & ";PWD=" & Pwd$ & "].TestTab"sql = sql & " WHERE T1.F1 = TestTab.F1"' Execute the select query:Set ds = db.CreateDynaset(sql)' Loop through and display the records:While Not ds.EOF   For i = 0 To ds.Fields.Count - 1      Print ds(i); "  ";   Next i   Print   ds.MoveNextWend				

Hinweis für Microsoft Access-Datenbanken gesichert

Wenn Microsoft Access-Datenbank gesichert ist, Visual Basic-Applicationmust die SetDataAccessOption zugreifen und es ausführen SetDefaultWorkspace Commandsbefore Daten ausführen verwandten Code. Dies ist für gelungenen Anmeldung erforderlich, da Microsoft Access nicht den "Username =" und "PWD =" Teil der Verbindungszeichenfolge. Beispiel:
   ' Establish the location of the SYSTEM.MDA files if in another   ' directory other than the \WINDOWS directory:   SetDataAccessOption 1, "C:\MYDIR\MYAPP.INI"   ' Log on to a valid account:   SetDefaultWorkspace "admin", "<password>"				
Wenn dies geschieht, Abfragen an gesicherten Microsoft Access-Datenbank Willsucceed. Beachten Sie jedoch, dass durch diesen Prozess eine integrierte Inlimitation für dieses ad-hoc-Verfahren ist; mit einer ad-hoc-Abfrage kann nur eine gesicherte Microsoft Accessdatabase zugegriffen werden. Ist nach Microsoft Access-Datenbankmodul in einer Sitzung mit einem bestimmten Benutzernamen und Passwort, initialisiert diese Werte bis Sitzung (Visual Basic-Programm oder der VB-Umgebung beibehalten werden (EXE) endet.

Ggf. mehrere gesicherte Microsoft Access-Datenbanken zu einer Abfrage jedoch am besten die eigentlichen Tabellen Fromsecured Datenbanken in einer gesicherten Datenbank verschieben. Dazu müssen Changethe Kennwort für das Administratorkonto zu "" während der Transferoperations. Visual Basic-Code wie das Dataaccess-Beispiel Visdata, können Sie dann die Tabellen kopieren.
Informationsquellen
Weitere Informationen zur Sicherheit in Microsoft Access klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
105990 INFO: Wie Visual Basic 3.0 ist für die Sicherheit von Microsoft Access festlegen

Warnung: Dieser Artikel wurde automatisch übersetzt.

Свойства

ИД на статията: 113701 – Последен преглед: 05/21/2016 06:55:00 – Редакция: 5.0

  • kbhowto kbsqlprog kbmt KB113701 KbMtde
Обратна връзка