Externe Verknüpfung auf Abfrage mit VBA-Funktion

Hallo,
ich habe in einer Datenbank verschiedene Abfragen zur Durchführung von Berechnungen mit dem Datenbestand erzeugt. Die Werte in den Abfragen werden mit Hilfe von VBA-Funktionen aus den Modulen der Datenbank errechnet (also, z.B. „Ergebnis1: Berechnung1([Feld1];[Feld2])“).

In einer weiteren Datenbank möchte ich einige diese Abfragen als Grundlagedaten nutzen und dachte an eine externe Abfrage in der Form "SELECT * FROM Abfrage1 IN ‚C:\Berechungen.mdb‘ " ).
Möchte ich diese externen Abfragen ausführen, so erhalte ich eine Fehlermeldung, „Undefinierte Funktion ‚[die verwendete VBA-Funktion]‘ in Ausdruck“, d.h. bei externer Abfrage kann nicht auf die VBA-Funktionen der Quelldatenbank zugegriffen werden.

Hatte schon versucht, im VBA-Editor einen Verweis auf die Quelldatenbank zu setzen, aber bei Verweiserstellung wird ein Konflikt gemeldet, da gleich benannte VBA-Prozeduren in der Zieldatenbank enthalten sind.

Versuche ich in einer leeren Datenbank den Verweis zu setzen funktioniert dies zwar zunächst aber bei Aufruf der externen Abfrage (auch bei Öffnen der Entwurfsansicht) stürzt Access ohne Meldung ab.

Hat jemand Ideen, woran dies liegen könnte oder sogar andere Vorschläge, wie man auf die Abfragen der Quelldatenbank in anderen Datenbanken zugreifen kann.
Vielen Dank im Voraus für jeden Hinweis.

Viele Grüße, tester

Hallo tester,

erstelle dir eine Referenzbibliothek.

Generell sagt die Hilfe von Access folgendes zu deinem Thema:

Problembehandlung bei nicht definierten Funktionen und Verweisen auf Projekte oder Bibliotheken

Beim Öffnen einer Microsoft Access-Datei, die Verweise auf Projekte oder Bibliotheken enthält, die nicht an dem im Dialogfeld Verweise angegebenen Speicherort gespeichert sind, versucht Access, die Projekte oder Bibliotheken zu finden. Wenn Access jedoch eine Datei, auf die verwiesen wird, nicht finden kann, müssen Sie den Verweis möglicherweise manuell festlegen.

Unter Umständen fällt Ihnen erst auf, dass Sie einen fehlenden Verweis reparieren müssen, wenn Sie eine Meldung erhalten, dass eine Funktion nicht definiert ist, bzw. eine Meldung, dass Access ein Projekt oder eine Bibliothek nicht finden kann, wenn Sie versuchen, eine Abfrage oder eine Microsoft Visual Basic-Prozedur auszuführen.

Um einen fehlenden Verweis zu reparieren, öffnen Sie ein Modul in der Entwurfsansicht, und klicken Sie im Menü Extras auf Verweise. Deaktivieren Sie dann die Kontrollkästchen neben allen fehlenden Verweisen, und legen Sie die gewünschten Verweise fest.

Ein Klassenmodul kann nicht von einer Abfrage, einem Formular, einem Bericht oder einem Makro aus aufgerufen werden. Speichern Sie eine Visual Basic-Prozedur in einem Standardmodul, wenn Sie sie von einer Abfrage, einem Formular, einem Bericht oder einem Makro aus aufrufen müssen.

Beim Öffnen einer Datenzugriffsseite außerhalb von Access erhalten Sie unter Umständen eine Meldung, dass eine Funktion nicht definiert ist, falls die Datenzugriffsseite eine Funktion enthält, die außerhalb von Access nicht verfügbar ist.

Weihnachtliche Grüße aus Schwerin
Wolfgang
(Netwolf)

Hallo.

Entweder verknüpfst Du Deine Quell-DB im Datenbankfenster,
oder mit VBA-Code:
DoCmd.TransferDatabase acLink, „Microsoft access“, „Pfad zur .mdb“, acTable, „Tabellenname“, „Tabellenname“

Frohes Fest und guten Rutsch

Grüße aus Ettlingen, Joe

Hallo.

Hallo

Entweder verknüpfst Du Deine Quell-DB im Datenbankfenster,
oder mit VBA-Code:
DoCmd.TransferDatabase acLink, „Microsoft access“, „Pfad zur
.mdb“, acTable, „Tabellenname“, „Tabellenname“

Danke für den Hinweis aber auch das wird mit einem „Undefinierte Funktion“-Fehler quittiert.

Frohes Fest und guten Rutsch

Danke und Guten Rutsch

Grüße aus Ettlingen, Joe

Gruß, tester

Hallo tester,

Hallo Wolfgang,

erstelle dir eine Referenzbibliothek.

hatte es bereits mit einem Verweis auf die Quelldatenbank in der die VBA-Funktionen enthalten sind probiert aber Access stürzt bei Aufruf der Abfrage ab. Vielleicht klappt es besser, wenn die VBA-Funktionen in eine dritte DB ausgelagert werden. Muss ich mal probieren.

Hatte allerdings auch schon die Idee per VBA die Quelldatenbank zu öffnen, in dieser eine „SELECT INTO“-Abfrage auszuführen und damit eine Tabelle mit den Abfragedaten zu erzeugen. Diese möchte ich dann in die Zieldatenbank importieren und die in der Quelldatenbank erzeugte Datei wieder löschen. Wenn ich dies per AutoExec-Makro ausführen lasse, hätte ich auch ohne externe Verknüpfungen bei jedem Öffnen eine aktuelle Kopie der Grundlagedaten.
Muss mal die nächsten Tage probieren, dies umzusetzen.

Weihnachtliche Grüße aus Schwerin
Wolfgang
(Netwolf)

„Jahrswechsel-iche“ Grüße
tester

Hallo.

War vielleicht etwas mißverständlich. Hier nochmals der Originalcode, der bei mir funktioniert:
DoCmd.TransferDatabase acLink, „Microsoft access“, „F:\Office\Access\Lagerverwaltung\lager_XP.mdb“, acTable, „AutoLogOff“, „AutoLogOff“

Gruß aus Ettlingen

Joe