Home Office-Hilfe.com - Wir lösen Ihr Problem mit Microsoft Excel, Word, Outlook, PowerPoint, Access gratis Forum Impressum

  Frontend-Backend Pfade variabel halten
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
Iron_andy
Newbie
Newbie


Anmeldedatum: 02.08.2006
Beiträge: 3

BeitragVerfasst am: 02.08.2006, 12:32 Nach oben

Hallo zusammen,

ich habe eine Datenbank geschrieben und diese in Frontend und Backend getrennt.
Mein Problem besteht nun dahingehend, dass in der Frontend der Pfad zur Backend absolut abgelegt wird. D.h. wenn ich meine Dateien woanderst hin verschiebe passt die Verknüpfung nicht mehr.
Im Hinterkopf habe ich aber noch, dass es eine Methode gibt die prüft ob die Backend im selben Verzeichnis liegt wie die Frontend.
Und diese dann verwendet.

Kennt das jemand??
Ich habe schon mal danach gesucht wusste aber nicht richtig wonach ich suchen sollte.
Wäre echt super wenn mir jemand helfen kann.
Danke!

gruß
Andreas
Benutzer-Profile anzeigenPrivate Nachricht senden
freaky
Moderator
Moderator


Anmeldedatum: 11.04.2006
Beiträge: 751
Wohnort: im Norden

BeitragVerfasst am: 02.08.2006, 13:20 Nach oben

Hi Andreas,

schau mal bei Donkarl nach unter 3.1 - Du kannst das mit VBA machen...

http://www.donkarl.com/

_________________
Gruß
freaky
----------------------------------------------------------------
Windows 2000, Windows XP
Office 97, Office 2000, Office 2003 und Office 2007
_____________________________________________
Feedback nicht vergessen....
---------------------------------------------------------------
Benutzer-Profile anzeigenPrivate Nachricht senden
Iron_andy
Newbie
Newbie


Anmeldedatum: 02.08.2006
Beiträge: 3

BeitragVerfasst am: 02.08.2006, 18:03 Nach oben

Danke für den Tip!! Very Happy
Hab's gleich ausprobiert. Musst allerdings noch den Verweis auf Microsoft DAO 3.6 aktivieren.

Hat aber leider trotzdem nicht funktioniert da ein Syntaxfehler, im Bereich des End Sub, gemeldet wurde. Sad

Nichts desto trotz habe ich mittlerweile noch ne andere Version aus ner älteren Datenbank von nem Kollegen gefunden. Die funktioniert definitiv.


Function AutoReattachTables(ByVal nVerifyPrompt As Integer)

On Error GoTo AutoReattachTables_Err
Dim MainDBDir As String
Dim DB As Database
Dim TabDefs As TableDefs
Dim nCurTab As Integer
Dim nPtr As Integer
Dim TabFileNameLoc As String
Dim TabFileName As String
Dim nConnectLen As Integer
Dim ConnectPrefix As String
Dim nDBDirPos As Integer
Dim PromptStr As String
Dim nPromptDone As Integer
Dim nYesToAll As Integer

Set DB = DBEngine.Workspaces(0).Databases(0)
Set TabDefs = DB.TableDefs
MainDBDir = DB.Name
For nPtr = Len(MainDBDir) To 1 Step -1
If Mid$(MainDBDir, nPtr, 1) = "\" Then
MainDBDir = Left$(MainDBDir, nPtr - 1)
Exit For
End If
Next
If MainDBDir = "" Then
AutoReattachTables = False
Exit Function
End If

nPromptDone = False
nYesToAll = Not nVerifyPrompt
For nCurTab = 0 To TabDefs.Count - 1
If Mid(TabDefs(nCurTab).Name, 1, 4) <> "MSys" Then
TabFileNameLoc = TabDefs(nCurTab).Connect
nConnectLen = Len(TabFileNameLoc)
For nPtr = nConnectLen To 1 Step -1
If Mid$(TabFileNameLoc, nPtr, 1) = "\" Then
TabFileName = Right(TabFileNameLoc, nConnectLen - nPtr)
TabFileNameLoc = Left$(TabFileNameLoc, nPtr - 1)
Exit For
End If
Next
nDBDirPos = InStr(TabFileNameLoc, "DATABASE=")
If nDBDirPos Then
nDBDirPos = nDBDirPos + 9
ConnectPrefix = Left$(TabFileNameLoc, nDBDirPos - 1)
TabFileNameLoc = Right(TabFileNameLoc, Len(TabFileNameLoc) - nDBDirPos + 1)
If TabFileNameLoc <> MainDBDir Then
If nVerifyPrompt And (Not nPromptDone) Then
PromptStr = "Die Datenbank " & TabFileName & " ist von ihrem ursprünglichen Speicherplatz" & Chr$(10) & Chr$(13)
PromptStr = PromptStr & " " & TabFileNameLoc & Chr$(10) & Chr$(13)
PromptStr = PromptStr & "nach" & Chr$(10) & Chr$(13) & " " & MainDBDir & " verschoben worden." & Chr$(10) & Chr$(13) & Chr$(13)
PromptStr = PromptStr & "Soll der Pfad zur Datenbank nun aktualisiert werden ?"
If MsgBox(PromptStr, 4) = 6 Then
nYesToAll = True
End If
nPromptDone = True
End If
If nYesToAll Then
DoCmd.Echo True, "Datenbankpfad wird aktualisiert"
TabDefs(nCurTab).Connect = ConnectPrefix & MainDBDir & "\" & TabFileName
TabDefs(nCurTab).RefreshLink
DoCmd.Echo True
End If
End If
End If
End If
Next
AutoReattachTables = True

AutoReattachTables_Exit:
Exit Function

AutoReattachTables_Err:
Dim ErrMsg As String
ErrMsg = "AutoReattachTables: " & Error$
If TabFileName <> "" Then ErrMsg = ErrMsg & " (" & TabFileName & ")"
MsgBox ErrMsg
Resume AutoReattachTables_Exit

End Function



Vielleicht hilfts dem nächsten weiter.

gruß
Andreas
Benutzer-Profile anzeigenPrivate Nachricht senden
freaky
Moderator
Moderator


Anmeldedatum: 11.04.2006
Beiträge: 751
Wohnort: im Norden

BeitragVerfasst am: 02.08.2006, 19:33 Nach oben

Hi,

weiter unten hatten wir das Thema mit Frontend und Backend schon mal.

Das System ist in einer Multiuser-Umgebung gedacht. Und dort sollte dann jeder seine eigene Frontend haben - die sollte also auf dem eigenen PC sein. Die Backend sollte in einem Netzwerk sein - dort wo alle darauf zugreifen können.

Dann macht es wenig Sinn, wenn ich den Pfad der Frontend für die Backend benutze. Ich muss also über eienen Dialog die Bakend neu zuordnen können.

Der Code von Donkarl sollte schon funktionieren - er müsste natürlich angepasst werden. In der Art verbinde ich alle meine DBs über ein eigenes Formular automatisch mit den Backends (teilweise mehrere Backends für eine Frontend) und habe noch nie Probleme gehabt.

sorry - aber Deine Funktion würde ich in meiner DB nicht einsetzen - wäre mir zu umständlich. Trotzdem Danke fürs posten hier - vielleicht hat ja jemand dasselbe Problem und es hilft ihm/ihr..... Soll auch keiene Kritik sein....

_________________
Gruß
freaky
----------------------------------------------------------------
Windows 2000, Windows XP
Office 97, Office 2000, Office 2003 und Office 2007
_____________________________________________
Feedback nicht vergessen....
---------------------------------------------------------------
Benutzer-Profile anzeigenPrivate Nachricht senden
Iron_andy
Newbie
Newbie


Anmeldedatum: 02.08.2006
Beiträge: 3

BeitragVerfasst am: 03.08.2006, 09:29 Nach oben

Hallo,

für meine Zwecke ist es leider nicht möglich die Backend auf einem Netzlaufwerk abzulegen. Ich habe praktische eine DB für mehrere Kollegen geschrieben um denen die arbeit etwas zu erleichtern.
Die müssen deshalb die DB lokal ablegen.
Wenn ich nun irgendwelche Änderungen in der Oberfläche mache ist es einfacher wenn es in Front- und Backend getrennt ist und ich nur die neue Frontend verteile.

Ich geb zu etwas unkonventionell aber dafür reicht's.

gruß
Andreas
Benutzer-Profile anzeigenPrivate Nachricht senden
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge teile einer Datei in einem Pfad varia... Marco1980 Microsoft Excel Hilfe 1 25.10.2007, 20:55 Letzten Beitrag anzeigen
Keine neuen Beiträge abstand x Achsen Werte variabel rcs-acid Microsoft Excel Hilfe 4 22.02.2007, 15:53 Letzten Beitrag anzeigen
Keine neuen Beiträge Daten von Tabellenblättern variabel e... Ines Microsoft Excel Hilfe 6 27.10.2006, 10:42 Letzten Beitrag anzeigen
Keine neuen Beiträge Benutzerrechte bei Backend/Frontend firebohl Microsoft Access Hilfe 2 10.08.2006, 15:50 Letzten Beitrag anzeigen


 Gehe zu:   



Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen

Haftungsausschluss/Disclaimer


SMS kostenlos versenden | Battle-Dream | Tuning Forum | Join the YoungGeneration | krankenversicherungsvergleich | Kalorienarme Rezepte!
Versicherungsvergleich | Bürobedarf | Papier | Betten

Ranking-Hits



Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de