Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
244to248
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
244to248
244to248
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zugriff auf Acces mit ADO

Zugriff auf Acces mit ADO
22.04.2003 22:39:27
NorbertK
Hallo ihr Excelexperten (oder vielleicht besser Office-Kracks)!

Auf eine Datenbank mittels ADO zuzugreifen und die Werte aus einer AccessTabelle in ein Excelformular zu übertragen ist mir schon gelungen. Die Sache hat nur einen Haken: der jeweilige Name der Tabelle (Recordset) in der Datenbank war immer schon bekannt. Alle Beispiele, die ich Handbüchern und Foren gefunden hab, gehen auch davon aus, das der Tabellenname bekannt ist.

Wie komme ich an den oder die Namen der in einer Datenbank enthaltenen Tabellen ran. (1. Idee mit der Name-Eigenschaft klappt nicht).
Um es noch mal an einem Beispiel zu verdeutlichen:
Datenbank: "Schüler.mdb"
enthält folgende Tabellen: Klasse_7a, Klasse_7b, Klasse_8c, Unterrichtsfächer .....

Die Namen der Tabellen sollen in ein Excelarbeitsblatt übernommen werden.

Wie könnte das wohl mit dem ADO-Zugriff (oder anders) gehen?

Für einen Tip wäre ich außerordentlich dankbar!
Gruß Norbert


8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Zugriff auf Acces mit ADO
23.04.2003 05:51:00
andre

hallo norbert,
etwa so - aus einem projekt von mir:

ich habe mal alles unnötige auskommentiert. benutzt wurde userform2 und das listenfeld lsttab.
gruss andre



Re: Zugriff auf Acces mit ADO
23.04.2003 09:34:04
NorbertK

Hallo Andre,

danke für die "frühe" ;-) Antwort.
Mit welchem Datenbank-Modell finktioniert dein Code?

Hier nochmal meine Idee mit dem ADO-Modell:

Sub TestADO_Zugriff()

Dim ADOCnn As ADODB.Connection
Dim ADOTab As ADODB.Recordset

Set ADOCnn = New ADODB.Connection
ADOCnn.Provider = "Microsoft.Jet.OLEDB.4.0"

ADOCnn.Open ("d:\Schüler.mdb")

Set ADOTab = New ADODB.Recordset

' die folgende Idee funktioniert nicht:
'???????????????????????????????????????????????????????
For Each ADOTab In ADOCnn.Recordsets
Debug.Print ADOTab.Name
Next
'????????????????????????????????????????????????????????
ADOCnn.Close
Set ADOCnn = Nothing

End Sub


Anzeige
Re: Zugriff auf Acces mit ADO
23.04.2003 10:15:14
Michael Scheffler

Hi,

Du hast ja auch noch keinen Recordset, den musst Du erst durch Abfrage kreiern. Schau Dir den Quellcode bitte genau an.

So, wie es Andre geschrieben hat, funktioniert es, egal welches DB-Format. Das ist gerade der Witz an ADO.

Aber bei Access funktioniert es gerade!

Gruß

Micha

Re: Zugriff auf Acces mit ADO
23.04.2003 10:58:36
NorbertK

Großer Balken vor meinem Kopf??

Wenn ich mit z. B. "Artikel" den Recordset öffne, dann kenne ich den Namen des Recordsets ja schon. Das ist nicht das Problem.

Wie kriege ich die Namen (oder vieleicht die Anzahl) aller Tabellen einer Datenbank nach Excel, oder wie komme ich da dran?

Viele Grüße Norbert


Anzeige
Balken - Ja!
23.04.2003 11:11:45
Michael Scheffler

>ADOCnn.Open ("d:\Schüler.mdb")
Hier machst Du die Verbindung auf!

>Set ADOTab = New ADODB.Recordset
Hier machst Du keinen Recordset, der mit der Verbindung ADOCnn in irgendeinem Zusammenhang steht!

Das ginge so:
Set ADOTab = ADOCnn.OpenRecordset("DeineTabelle", dbOpenSnapshot, dbReadOnly)
oder mit SQL so:
Set ADOTab = ADOCnn.OpenRecordset("select count(*) from artikel")


Folglich geht das Weitere nicht!
>For Each ADOTab In ADOCnn.Recordsets
>Debug.Print ADOTab.Name
>Next
>'????????????????????????????????????????????????????????
>ADOCnn.Close
>Set ADOCnn = Nothing



Anzeige
Re: Balken - Ja!
23.04.2003 15:51:31
NorbertK

Balken ist weg!

Ich hab's mal mit DAO versucht und bin nach langem Probieren und Studieren zu folgender Lösung gekommen:

Sub TestDAO_Zugriff()
Dim appAc As Access.Application
Dim i As Integer
Dim MDBPfad As String
Dim aktdb As Database
Dim TB As TableDef
MDBPfad = "d:\Schüler.mdb"

Set appAc = CreateObject("Access.Application")
appAc.OpenCurrentDatabase MDBPfad

Set aktdb = CurrentDb

For Each TB In aktdb.TableDefs
Debug.Print TB.Name
Next

Set appAc = Nothing


End Sub

Darüber bin ich ganz happy.

Vielen Dank an Euch beide, Andre und Michael!

Viele Grüße und einen schönen sonnigen Tag noch
Norbert

Anzeige
Re: Balken - Ja!
23.04.2003 16:29:35
Michael Scheffler

Hallo Norbert,

es ligt nicht an ADO. Ich würde auch keein DAO nutzen, denn ADO ist das Moderne, Kommende. Goolge mal und Du wirst fündig z.B.:

Schau mal hier steht was"J

Oder hier"J

Gruß

Micha

Anzeige
Re: Balken - Ja!
23.04.2003 17:13:51
andre

hallo allerseits,
schön, dass es geklappt hat. kann mich leider nicht immer melden - am "normalen" arbeitstag geht's nur kurz nach dem aufstehn und dann abends wieder - sofern nicht die family ihre ansprüche anmeldet.
gruss andre

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige