Supportnet / Forum / Datenbanken
Datenbank über button öffnen
Frage
Hallo Leute!
Kann mir jemand sagen, was an diesem Code falsch ist?
[code]
Public Sub btnÖffnen_Click()
Dim dbo As Database
Dim Path As String
Path = CurDir$ & "\"
Set dbo = DBEngine.Workspaces(0).OpenDatabase(Path & "Sicherung.mde")
End Sub
[/code]
Danke
the..dude
Antwort 1 von JohnnyLoser
Nichts!
Abgesehen davon, daß zwei "\" stehen würden, wenn CurDir$ das Root-Directory "c:\" zurückgibt.
Und natürlich dbo am Ende der Prozedur nicht mehr zur Verfügung steht.
Aber das weißt Du ja sicher selbst.
Wo ist Dein Problem?
Abgesehen davon, daß zwei "\" stehen würden, wenn CurDir$ das Root-Directory "c:\" zurückgibt.
Und natürlich dbo am Ende der Prozedur nicht mehr zur Verfügung steht.
Aber das weißt Du ja sicher selbst.
Wo ist Dein Problem?
Antwort 2 von the..dude
Hallo JohnnyLoser!
Danke für deine Bestätigung!
Das Problem ist, es wird nichts geöffnet!
Ich bekomme gar nichts, nicht einmal eine Fehlermeldung!
Ich hätte auch versucht den Befehl
DoCmd.RunCommand acCmdOpenDatabase
zu verwneden.
Aber in diesem Fall schreibt er:
Befehl steht Momentan nicht zur Verfügung!
Warum?
Hast du da vielleicht irgend eine Ahnung?
Danke
the..Dude
Danke für deine Bestätigung!
Das Problem ist, es wird nichts geöffnet!
Ich bekomme gar nichts, nicht einmal eine Fehlermeldung!
Ich hätte auch versucht den Befehl
DoCmd.RunCommand acCmdOpenDatabase
zu verwneden.
Aber in diesem Fall schreibt er:
Befehl steht Momentan nicht zur Verfügung!
Warum?
Hast du da vielleicht irgend eine Ahnung?
Danke
the..Dude
Antwort 3 von SJ
Hallo the..dude,
zu dem DoCmd kann ich leider nichts sagen, aber zu deiner ersten Frage.
Was soll den Passieren, wenn dein Code ausgeführt wird?
Set dbo = DBEngine.Workspaces(0).OpenDatabase(Path & "Sicherung.mde")
Hier wird die Datendank nicht im Datenbankfenster geöffnet, wenn du darauf wartest.
Die Datenbank wir im Hintergrund geöffnet und du kannst jetzt z.B. mit Rekordset Objekten Änderungen an den Daten vornehmen.
MFG
SJ
zu dem DoCmd kann ich leider nichts sagen, aber zu deiner ersten Frage.
Was soll den Passieren, wenn dein Code ausgeführt wird?
Set dbo = DBEngine.Workspaces(0).OpenDatabase(Path & "Sicherung.mde")
Hier wird die Datendank nicht im Datenbankfenster geöffnet, wenn du darauf wartest.
Die Datenbank wir im Hintergrund geöffnet und du kannst jetzt z.B. mit Rekordset Objekten Änderungen an den Daten vornehmen.
MFG
SJ
Antwort 4 von the..dude
Hallo
Ach so, na da kann ich dann lange warten!
Man lernt ja doch nie aus!
Weißt du eine Möglichkeit, wie man die Datenbank öffnen könnte?
Danke
the..dude
Ach so, na da kann ich dann lange warten!
Man lernt ja doch nie aus!
Weißt du eine Möglichkeit, wie man die Datenbank öffnen könnte?
Danke
the..dude
Antwort 5 von SJ
Hallo,
wo für willst du die Datendank öffnen?
MFG
SJ
wo für willst du die Datendank öffnen?
MFG
SJ
Antwort 6 von Teddy
Genau ! Mach´s ordentlich und leg eine Endlosform an mit Datenquelle = Tabelle.
Gruß
Teddy
Gruß
Teddy
Antwort 7 von the...dude
Öffnen möcht ich sie, damit ich zu bereits gesicherten Daten zugriff habe!
In meiner Datenbank gibt es Rechnungen, Angebote, Lieferscheine und Bestellungen! Diese sollten mir auch nach der Sicherung noch zu Verfügung stehen!
In meiner Datenbank gibt es Rechnungen, Angebote, Lieferscheine und Bestellungen! Diese sollten mir auch nach der Sicherung noch zu Verfügung stehen!
Antwort 8 von SJ
Also sind in der ersten Datenbank deine aktuellen Daten?
Wie wird die Sicherungsdatenbank erstellt?
Also erstellst du nur eine Kopie von der Datenbank mit den aktuellen Daten oder werden die Daten an die jeweiligen Tabellen in der Sicherungsdatenbank angefügt?
Wenn du die Daten an die Sicherungsdatenbank anfügst, hilft es dir dann vielleicht, wenn du über DATEI/EXTERNE DATEN/TABELLEN VERKÜPFEN, die Tabellen die du brauchst, in deine Originaldatenbank verknüpfst?
Dann hast du von deiner aktuellen Datenbank zugriff auf die Daten, welche aber in deiner Sicherungsdatenbank liegen.
MFG
SJ
Wie wird die Sicherungsdatenbank erstellt?
Also erstellst du nur eine Kopie von der Datenbank mit den aktuellen Daten oder werden die Daten an die jeweiligen Tabellen in der Sicherungsdatenbank angefügt?
Wenn du die Daten an die Sicherungsdatenbank anfügst, hilft es dir dann vielleicht, wenn du über DATEI/EXTERNE DATEN/TABELLEN VERKÜPFEN, die Tabellen die du brauchst, in deine Originaldatenbank verknüpfst?
Dann hast du von deiner aktuellen Datenbank zugriff auf die Daten, welche aber in deiner Sicherungsdatenbank liegen.
MFG
SJ
Antwort 9 von JohnnyLoser
Moin moin,
wenn Du die Daten einer anderen Datenbank darstellen willst, bleibt Dir neben dem Verknüpfen der Tabellen noch eine weitere Möglichkeit, welche besonders dann zu empfehlen ist, wenn die externen Datenbanken wechselnde Namen haben.
Du erstellst im Load-Ereignis Deines Formulars z.B. folgenden Code:
[CODE]Sub Form_Load()
Dim dbName As String
dbName = "c:\Pfad\DBName.mdb"
'alternativ eine Funktion aufrufen, die Dir den Datenbanknamen zurückgibt
'dbName = fncGetExtDb()
Me.RecordSource = "SELECT * FROM Tabelle IN '" & dbName & "' ORDER BY Feld"
End Sub[/CODE]
Alternativ kannst Du auch erst mal ein leeres Formular öffen, in dem im Formularkopf eine ComboBox alle externen Datenbanken zur Auswahl anbietet. Nach Aktualisierung der ComboBox weist Du den Recordsource zu.
Du siehst, es gibt nicht nur eine Möglichkeit, auf Daten externer Datenbanken zuzugreifen. Für welche Du Dich entscheidest liegt vor allem daran, wann Du was, wie mit welchen Daten machen willst.
Gruß
Johnny
wenn Du die Daten einer anderen Datenbank darstellen willst, bleibt Dir neben dem Verknüpfen der Tabellen noch eine weitere Möglichkeit, welche besonders dann zu empfehlen ist, wenn die externen Datenbanken wechselnde Namen haben.
Du erstellst im Load-Ereignis Deines Formulars z.B. folgenden Code:
[CODE]Sub Form_Load()
Dim dbName As String
dbName = "c:\Pfad\DBName.mdb"
'alternativ eine Funktion aufrufen, die Dir den Datenbanknamen zurückgibt
'dbName = fncGetExtDb()
Me.RecordSource = "SELECT * FROM Tabelle IN '" & dbName & "' ORDER BY Feld"
End Sub[/CODE]
Alternativ kannst Du auch erst mal ein leeres Formular öffen, in dem im Formularkopf eine ComboBox alle externen Datenbanken zur Auswahl anbietet. Nach Aktualisierung der ComboBox weist Du den Recordsource zu.
Du siehst, es gibt nicht nur eine Möglichkeit, auf Daten externer Datenbanken zuzugreifen. Für welche Du Dich entscheidest liegt vor allem daran, wann Du was, wie mit welchen Daten machen willst.
Gruß
Johnny