PDA

Vollständige Version anzeigen : .mdb mit .mdw (Arbeitsgruppendatei) öffnen


Bob
28.11.2000, 11:31
Hallo zusammen,
ich möchte von VBA aus eine .mdb Datei mit den Sicherheitseinstellungen einer .mdw Datei öffnen. Alle mir bekannten Funktionen lassen es nicht zu beim connecten explizit den Namen einer .mdw Datei anzugeben. Da ich mich mit Arbeitsgruppen vorher noch nicht beschäftigt habe, hoffe ich das hier jemand mehr Erfahrung hat und mir helfen kann.

ciao und tschüss,
Bob

MarkusR
28.11.2000, 14:08
Hallo,

Du must eine seperate DBEngine öffnen, die die MDW als Systemdatenbank nutzt. Damit öffnest du einen Workspace mit einem Benutzerkonto aus der MDW-Datei. Mit diesem Workspace kannst du dann die Datenbank öffnen.

Dim wsp As Workspace
Dim dbe As PrivDBEngine
dim dbs as database

Set dbe = New PrivDBEngine
new_dbe.SystemDB = "Pfad zur MDW"

Set wsp = new_dbe.CreateWorkspace("wsName", "Benutzer", "Kennwort")
set dbs=wsp.opendatabase("Pfad zur MDB")



Viel Glück

Markus

Mike
28.11.2000, 16:29
Hallo Markus, hallo Bob,
super Markus! An dieser Lösung habe ich schon einige Male vergeblich gebastelt.
Deine Routine hat aber ein paar kleine Tippfehler. Hier meine getestete Version.

Sub Test()
Dim wsp As Workspace
Dim dbe As PrivDBEngine
Dim dbs As Database
Dim td As TableDef

Set dbe = New PrivDBEngine
dbe.SystemDB = "Pfad zur MDW"

Set wsp = dbe.CreateWorkspace("wsName", "Benutzer", "Kennwort")
Set dbs = wsp.OpenDatabase("Pfad zur MDB")

'Alle TableDef-Objekte in dieser Datenbank durchlaufen.
Debug.Print dbs.Name & ":"
For Each td In dbs.TableDefs
Debug.Print td.Name
Next td
Debug.Print
End Sub
Mike

cbisys
29.11.2000, 12:41
Hi markus und Mike,

so wie's Mike beschrieben hat klappt's (Win98, ACC97 SR2). Anstatt PrivDBEngine muss ich DBEngine benutzen.
Kopiere dich das funktionierende Modul auf einen anderen Rechner (NT4.0 Server SP3, ACC97 SR2) steigt die Prozedur beim 'Set dbe = New DBEngine' mit folgender Fehlermeldung aus:
Laufzeitfehler '429':
Objekterstellung durch ActiveX-Komponente nicht möglich

Ich habe keine Ahnung was ich da machen kann.

Danke für Eure Hilfe,
Bob

jump
10.01.2001, 14:45
Ich habe das gleiche Problem wie Du:
Laufzeitfehler '429' Objekterstellung durch ActiveX-Komponente nicht möglich

Hast Du mittlerweile oder irgendjemand eine Erklärung/Lösung?

Jump

jump
11.01.2001, 14:53
DAO ist falsch registriert!

Schau die Erklärung/Lösung unter: http://www.mvps.org/access/bugs/bugs0007.htm

Hoffe ich konnte Euch helfen...

Bob
12.01.2001, 09:33
Jo, hat geklappt.

Thanks,
Bob

Günther Kramer
12.01.2001, 10:36
Hallo Leute,

vielleicht hilft Euch dieser Artikel weiter:
http://www.donkarl.com/FAQ/FAQBugs.htm#7.9 -> 7.9 Objekterstellung durch Active-X-Komponente

jump
12.01.2001, 13:43
...hab ich mir angesehen.
Jedoch habe ich 2 Probleme:
1.
Regsvr32.exe dao350.dll meldet erfolgreich, jedoch Set dbe = New PrivDBEngine erzeugt weiterhin den Fehler 429. Auch dbe = New DAO.PrivDBEngine
NAch einer neuInstallation von Office 97 läuft es, ist aber nicht die Lösung für mich, da es auf 100 Installationen gemacht werden muß und diese sind haben Access 97 Runtime Version.
2.
Die nicht saubere DAO-Registrierung wurde von meinem eigenen erzeugten Setup von Access 97 Runtime erzeugt. Es läuft alles sauber, nur dbe = New PrivDBEngine läuft ebend nicht.

So, jetzt zur spannenden Frage, wer hat eine Idee oder Tip für mich?

Kevin
01.06.2001, 13:53
Hi,

ich habe auch Euren Code mal benutzt, jedoch kommt nur immer die Fehlermeldung das Benutzer oder Passwort nicht richtig sind.
Die beiden sind aber richtig, da ich mich mit Ihnen manuell anmelden kann.

Dim DB As DATABASE
Dim WSP As Workspace
Dim RS As Recordset
Dim EngDB As DBEngine
Set EngDB = New DBEngin