VBA Zugriff auf datenbank

hallo,
ich will auf eine access datenbank die auf einem anderen laufwerk gespeichert ist zugreifen.

Dim DB As DAO.Database

Set DB = OpenDatabase(„Laufwerkpfad*.mdb“)

funktioniert nicht, ich hab auch probiert ein workspace zu erstellen aber ich bekomme es nicht hin.

kann mir jemand weiter helfen?

Hallo,

tja, ich hab mal vor einiger Zeit sowas realisiert, allerdings aus anderen Beweggruenden heraus, als nur Daten zu lesen, sondern auch um Abfragen und Tabelle zu aendern. Folgendes ist etwas umstaendlich, aber funktioniert ( VB6 und Access97 oder XP):

=-----------------------------------------------------
Dim db As Database
Dim rec As Recordset
Dim docObj as Object
Dim sqlString As String

Set docObj = CreateObject(„Access.Application“)
docObj.Visible = True ’ = False je nach Gusto
docObj.OpenCurrentDatabase („haltDenDateinamen.MDB“)

Set db = docObj.DBEngine.Workspaces(0).Databases(0)
sqlString = " SELECT DISTINCT [" & fieldName & „] From [“ & tblName & „]“ ’ Ist halt ein SQL-Statement, wie jedes andere,

Set rec = db.OpenRecordset(sqlString)

'usw usf

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo, Patric!

Dim DB As DAO.Database
Set DB = OpenDatabase(„Laufwerkpfad*.mdb“)
funktioniert nicht, ich hab auch probiert ein workspace zu
erstellen aber ich bekomme es nicht hin.

Hast Du wirklich „*.mdb“ drin? OpenDatabase benötigt schon den konkreten Dateinamen.
Hast Du weiterhin den DAO-Verweis drin?

Dann sollte eigentlich alles problemlos laufen. Grundsätzlich ist der Befehl schon in Ordnung.

Die andere Antwort öffnet Dir ja in jedem Fall ein Access (und wenn keins installiert ist, gäbe es Probleme), aber das brauchst Du nicht unbedingt…

Gruß, Manfred

Hallo,
danke erst mal für die antworten.

*.mdb hab ich nicht drin sondern den vollständingen namen.
was meinst du mit weiterhin dao-verweis?

ich will dann tabellen aus der datenbank öffnen und bearbeiten,
das mache ich wie folgt:

Dim Datensatz As DAO.Recordset
Set Datensatz = DB.OpenRecordset(„Tabellenname“, dbOpenTable)

ich arbeite dann nur noch mit Datensatz.

ich werd mal die methode von peter testen.

grüße patric

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]