PDA

Vollständige Version anzeigen : verknüpfte BE-Tabelle nicht gefunden


kfranck
29.06.2006, 18:22
Hallo,
ich bitte um Nachsicht mit wahrscheinlich typischer Neulingsfrage.

Ich habe eine winzige Adressdatenbank mit A03 gebastelt, die auch noch weiterentwickelt werden soll (deshalb wurde sie in FE-BE geteilt) und die auf einem andren Rechner mit Daten gefüllt wird.

Auf diesem anderen Rechner ist kein Access installiert. Dort ist statt dessen die Access 2003 Runtime installiert. Die Verzeichnisstruktur entspricht nicht derjenigen auf dem Entwicklungsrechner.

Solange es sich um eine einzige Datenbank handelte, konnte diese problemlos in der Runtimeumgebung geöffnet werden. Seit der Datenbankaufteilung kommt eine Fehlermeldung sinngemäß etwa: "falsche Pfadangabe zu Tabelle xxx_be.mdb".

Vermutlich wird im Frontend der absolute Pfad zur verknüpften Backend-Datentabelle hinterlegt.

Meine Frage lautet: Wie kann ich im Frontend die Pfadangabe zur verknüpften Tabelle bearbeiten bzw. aus dem absoluten Pfad einen relativen machen oder den Pfad ganz löschen (FE und BE befinden sich immer im selben Verzeichnis).

Gruß
kfranck

Arne Dieckmann
29.06.2006, 18:45
FE und BE befinden sich immer im selben VerzeichnisDas macht's ziemlich einfach. Bevor du ein (das erste) Formular öffnest, dass an irgendeine Tabelle gebunden ist, solltest du den Code unter FAQ 3.1 (Link in meiner Sigantur) ausführen. Dazu bietet sich das AutoExec-Makro an.

kfranck
29.06.2006, 19:22
Danke für den Tip. Jetzt kommt die Fehlermeldung:

"Fehler beim Kompilieren. Benutzerdefinierter Typ nicht definiert."

Im Editor ist

Dim db As DAO.Database

markiert. Was nun?

Arne Dieckmann
29.06.2006, 19:27
Es fehlt nur der Verweis auf die DAO-Bibliothek. S. dazu FAQ 7.11.

kfranck
29.06.2006, 20:04
Es fehlt nur der Verweis auf die DAO-Bibliothek. S. dazu FAQ 7.11.

Jetzt kommt auf dem Entwicklungsrechner zwar keine Fehlermeldung mehr, aber der A03-Runtime-Rechner findet nach wie vor die verknüpfte Tabelle nicht.

Irgendwo muss doch im FE die Pfadangabe hinterlegt sein? Kann man die nicht wegkriegen?

Gruß,
kfranck

Arne Dieckmann
29.06.2006, 20:39
Irgendwo muss doch im FE die Pfadangabe hinterlegt sein? Kann man die nicht wegkriegen?Ich will ja nicht zu bissig klingen, aber: Wenn's mit einem einfachen Kniff getan wäre, müsste es doch -mal ganz logisch betrachtet - bei donkarl stehen. :p
Oder kurz: Nein.

Man müsste kontrollieren, ob auf dem Problemrechner DAO überhaupt einsetzbar ist. Evtl. musst du die DLL noch auf den Rechner kopieren und registrieren (geht mit DAO glücklicherweise so einfach). S. dazu FAQ 7.9.

kfranck
29.06.2006, 22:28
Mittlerweile habe ich es auf zwei Zielrechnern probiert. Auf beiden Rechnern ist dao360.dll registriert, auf einem Zielrechner ist darüber hinaus Access 2003 installiert. Auch auf diesem erscheint beim Öffnen der FE-mdb die besagte Fehlermeldung: Falscher Pad (oder so ähnlich).

Zur Zeit sieht´s demnach für mich so aus: Microsoft verbreitet eine kostenlose Access-2003-Runtime.exe und propagiert die Datenbankaufteilung in Frontend und Backend. Fazit: Wie schon in der allerersten Access-Version funktionierts nicht, jedenfalls nicht ohne nervtötende Klimmzüge, die offenbar selbst den Profis in einschlägigen Foren wie diesem hier nicht ohne weiteres geläufig sind.

Das kann doch eigentlich nicht wahr sein, oder?

Gruß,
kfranck

Arne Dieckmann
29.06.2006, 22:51
Hm. Teste doch einmal den Anhang, der bei mir funktionierte *. Entpacke die beiden Dateien in ein beliebiges Verzeichnis (aber natürlich beide in dasselbe) und öffne dann die Datei "fe.mdb". Klappt es damit? Kannst du die verknüpfte Tabelle dann öffnen?


Verantwortlich für das Einbinden ist das Makro "AutoExec" - darin wird die Funktion fctRelink aufgerufen. Danach könnte man im gleichen Makro das Startformular öffnen.


* = Zumindest klappte das Verschieben in relativ einfache Ordner wie C:\Temp oder D:\Transfer. Wenn du ungewöhnliche Verzeichnisnamen verwendest, könnte das noch eine Rolle spielen.

kfranck
30.06.2006, 00:08
Ja, jetzt klappt´s! :)

Zwar tatsächlich nur in einem "einstufigen" Verzeichnis, aber damit kann ich leben. Sobald ich die mdbs in ein Unter-Unter-Verzeichnis lege, gehts nicht.

Ich hatte außerdem vorher den Code in form_load() kopiert und nicht im AutoExec-Makro. Das war wohl ein weiterer Fehler.

Vielen Dank für deine Hilfe
und gute Nacht.

kfranck

Arne Dieckmann
30.06.2006, 07:41
Ich hatte außerdem vorher den Code in form_load() kopiert und nicht im AutoExec-MakroDeshalb schrieb ich in Beitrag #2 auch:
Bevor du ein (das erste) Formular öffnest, dass an irgendeine Tabelle gebunden ist,Vielleicht hätte ich das deutlicher schreiben sollen (da fällt mir auf: Warum habe ich dort das "dass" mit 2 "s" geschrieben? Peinlich).

kfranck
30.06.2006, 15:41
Warum habe ich dort das "dass" mit 2 "s" geschrieben?

Well, es gibt Schlimmeres *find* :D

Btw: Hast du vielleicht auch einen Tip, wie man die lästigen Fragen der Access-Runtime zu Beginn der Session wegbekommt?

"Wollen Sie Makros blocken?" "Wollen Sie die Datenbank öffnen?" (die dritte Frage fällt mir jetzt grad nicht mehr ein).

Gibts dafür eine passende Befehlszeilenoption?

Gruß,
kfranck

PS: Der Weisheit letzter Schluss wird die Lösung wohl nicht sein, dass man die Datenbank nur aus einem Verzeichnis direkt unter Root öffnen kann.

Arne Dieckmann
30.06.2006, 20:39
Erst einmal zum PS: Bei mir ist das nicht so (kann bei mir z.B. auch unter "C:\Dokumente und Einstellungen\Arne\Lokale Einstellungen" liegen). Woran es bei dir liegt, kann ich leider nicht sagen.

Zur neuen Frage: Da dürften die Registry-Einträge unter FAQ 2.28 helfen.

kfranck
01.07.2006, 20:14
Zur neuen Frage: Da dürften die Registry-Einträge unter FAQ 2.28 helfen.

Bevor ich hier weitere dumme Fragen stelle, werde ich mir jetzt erstmal die Faq von Don Karl reinziehen :cool:


Erst einmal zum PS: Bei mir ist das nicht so (kann bei mir z.B. auch unter "C:\Dokumente und Einstellungen\Arne\Lokale Einstellungen" liegen).

Nun, nachdem ich gemerkt habe, dass es nur beim ersten Aufruf nicht klappt, ist es bei mir auch nicht mehr so *freu*

Gruß,
kfranck