Jump to content

AccessDB aufteilen in Frontend und Backend


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...