PDA

Vollständige Version anzeigen : ODBC-Verbindung automatisieren ( VBA Experten)!?


Uli W
27.08.2001, 08:42
Hallo VB-Experten,

ich möchte per Script eine ODBC-Verbindung zum SQL-Server aufbauen und bestimmte Tabellen einbinden.

Dies funktioniert m.e. über folgendes Script:

Mit der folgenden Funktion überprüfe ich,ob die Tabelle/n bereits eingebunden sind:

Function Tabelle_vorhanden(Tabellenname As String) As Boolean
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Set db = CurrentDb
For Each tdf In db.TableDefs
If tdf.Name = Tabellenname Then Tabelle_vorhanden = True: Exit For
Next
End Function

Mit der folgenden Funktion kannst ich die Tabellen verknüpfen:

Function ODBC_Tabellen() As Boolean
Dim s_Verbindung As String
s_Verbindung = "ODBC;DSN=?;UID=Anonymos;PWD=?;DATABASE=SQL"

If Tabelle_vorhanden("tab_Meine_Tabelle") = False Then
DoCmd.TransferDatabase acLink, "ODBC", s_Verbindung, acTable, "tab_SQL_Tabelle", "tab_Tabelle"
End If
End Function

Jetzt mein Problem:

Ich möchte z.B. alle Tabellen vom SQL-Server verknüpfen, die mit "B" beginnen um bestimmten Usern bestimmte Tabellen zuzuordnen.

Was muss ich ändern ?

Uli

maba
27.08.2001, 09:09
wie wäre es wenn du den Tbl Namen ausernander pfückst mit

if left(tdf.Name;1) = "B" then
docmd.transferDB......
end if

usw

Birgit Dannenberg
27.08.2001, 09:14
Wenn Du die Tabellen 'blind' einbinden möchtest, d.h. ohne zu wissen wie viele es sind und wie sie genau heißen, wirst Du über die Systemtabelle der ODBC-Datenbank gehen müssen.
Was für ein Datenbanksystem setzt Du denn da ein?

Gruss Birgit

Stema
27.08.2001, 09:58
Hallo Uli,

Du hast ja schon eine Funktion Tabelle_vorhanden. Aus dieser Funktion machst Du eine 2. Funktion. Hier erstellst Du ein TableDef auf der ODBC-DB. Hier fragst Du dann über eine Schleife alle Tabellennamen ab, und speicherst sie in einem Array (die Namen meine ich). Evtl. suchst Du Dir hierbei schon nur die Namen aus, die Du brauchst. Anschließend änderst Du Deine Funktion ODBC_Tabellen so, daß Du den Tabellennamen der zu verknüpfenden Tabelle mit angeben kannst. Dann brauchst Du noch eine Schleife, die alle Tabellennamen durchgeht (das Array) und die Funktion ODBC_Tabellen aufruft.