Herbert Leitner 10 Geschrieben 29. Juni 2007 Melden Teilen Geschrieben 29. Juni 2007 Hallo! Ich arbeite an einer meiner Datenbanken gerade sehr intensiv rum an den Formularen und Berichten. Um bei einem Versehen nicht auch die Daten/Tabellen zu zerstören habe ich die Datenbank aufgeteilt in eine Backend (mit den Tabellen) und dem Frontend mit den Abfragen/Formularen/Berichten. Im Frontend habe ich die Tabellen vom Backend eingebunden. Das geht super, damit kann ich am Frontend rumspielen, meine Foromulare, Berichte und Programme testen und mit "echten" Daten arbeiten. Wenn das funktioinert, hole ich mir die Sicherung des Backends zurück und arbeite damit weiter. Wie gesagt, das funktioniert super. Frontend und Backend liegen im gleichen Verzeichnis. Nur habe ich das Problem, das ich die Datenbank auf den Server legen muss. Leider speichert sich der Frontend beim Einbinden der Tabellen den absoluten Pfad in die Datenbank und greift dann partout auf die lokale Platte zu. Nun meine Frage: Wo kann ich im Frontend einstellen, daß die Datenbank mit den Tabellen (Backend) im gleichen Verzeichnis liegt. Dann würde das immer funktionieren, gleich wo ich das "hinlege"! Gruß und Dank! Herbert Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 29. Juni 2007 Melden Teilen Geschrieben 29. Juni 2007 So in der Art sollte es funktionieren. Die Prozedur "Relinktables" beim Start ausführen lassen. Die Konstante "conBackendMDB muss noch angepasst werden. Private Function RefreshLinks(strFileName As String) As Boolean ' Verknüpfungen mit der angegebenen Datenbank aktualisieren. Bei Erfolg True zurückgeben. Dim dbs As Database Dim tdf As TableDef ' Alle Tabellen in der Datenbank durchlaufen. Set dbs = CurrentDb For Each tdf In dbs.TableDefs ' Wenn die Tabelle eine Connect-Zeichenfolge enthält, ist sie verknüpft. If Len(tdf.Connect) > 0 Then tdf.Connect = ";DATABASE=" & strFileName Err = 0 On Error Resume Next tdf.RefreshLink ' Tabelle neu verknüpfen. If Err <> 0 Then RefreshLinks = False Exit Function End If End If Next tdf RefreshLinks = True ' Neuverknüpfen abgeschlossen. End Function Public Function RelinkTables() As Boolean ' Versucht, die Verknüpfungen mit der Backend-Datenbank zu aktualisieren. ' Gibt bei Erfolg True zurück. Dim ComDlgOpenPath As Object Dim strAccDir As String Dim strSearchPath As String Dim strFileName As String Dim intError As Integer Dim strError As String Const conBackendMDB = "Backend.mdb" Const conMaxTables = 8 Const conNonExistentTable = 3011 Const conNotAdr = 3078 Const conAdrNotFound = 3024 Const conAccessDenied = 3051 Const conReadOnlyDatabase = 3027 strFileName = Currentproject.Path & "\" & conBackendMDB ' Verknüpfungen reparieren. If RefreshLinks(strFileName) Then RelinkTables = True Exit Function End If ' Bei Mißerfolg Fehler melden. Select Case Err Case conNonExistentTable, conNotAdr strError = "Datei '" & strFileName & "' enthält die erforderlichen Tabellen nicht." Case Err = conAdrNotFound strError = "Sie können " & conAppTitle & " erst ausführen, nachdem Sie die Datenbank Adr_Data gefunden haben." Case Err = conAccessDenied strError = "Die Datei " & strFileName & " konnte nicht geöffnet werden, da sie schreibgeschützt ist oder sich in einem schreibgeschützten freigegebenen Verzeichnis befindet." Case Err = conReadOnlyDatabase strError = "Tabellen können nicht neu verknüpft werden, da " & conAppTitle & " schreibgeschützt ist oder sich in einem schreibgeschützten freigegebenen Verzeichnis befindet." Case Else strError = Err.Description End Select Exit_Failed: MsgBox strError, vbCritical RelinkTables = False End Function Zitieren Link zu diesem Kommentar
Herbert Leitner 10 Geschrieben 29. Juni 2007 Autor Melden Teilen Geschrieben 29. Juni 2007 Hallo! Ich bewundere Leute die sowas (so schnell) hinkriegen! Wenn ich da anfange zu programmieren dann schaffe ich meist 0,74 Zeilen pro Tag. ;-) Ich werde das Programm gleich ausprobieren. Danke! Herbert Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 30. Juni 2007 Melden Teilen Geschrieben 30. Juni 2007 Na ja... das hab ich mir vor langer Zeit mal zusammengesucht aus div. MS-Scripting-Quellen und jetzt nur noch ein bissle zusammengekürzt. Daher kanns sein, dass der ein oder andere kl. Fehler noch drin ist. Ggf. einfach melden. Zitieren Link zu diesem Kommentar
Volvotrucker 10 Geschrieben 30. Juni 2007 Melden Teilen Geschrieben 30. Juni 2007 Einfachste Variante: die Verknüpfungen zu den Tabellen löschen und neu verknüpfen. Dabei den Haken setzten der so ähnlich heisst wie " ... immer nach dem Speicherort fragen" oder einfach kurz die Backend umbenennen, dann fragt Access selber. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.