PDA

Vollständige Version anzeigen : Bibliotheksdatenbank-was ist das und funktioniert das so wie in der OLH beschrieben?


swelz
11.06.2012, 22:54
"Wenn Sie Visual Basis-Code, der die OpenForm-Methode enthält, in einer Bibliotheksdatenbank (Bibliotheksdatenbank: Eine Sammlung von Prozeduren und Datenbankobjekten, die Sie von jeder Anwendung aus aufrufen können. Um die Elemente der Bibliothek zu verwenden, müssen Sie zunächst einen Verweis von der aktuellen Datenbank zur Bibliotheksdatenbank erstellen.) ausführen, wird in Microsoft Access das Formular mit diesem Namen zuerst in der Bibliotheksdatenbank und dann in der aktuellen Datenbank gesucht."


So steht das in der Online-Hilfe!
Nun frage ich: bei wem funktioniert das "... das Formular mit diesem Namen zuerst in der Bibliotheksdatenbank und dann in der aktuellen Datenbank gesucht."

Unter Bibliotheksdatenbank verstehe ich eine gewöhnliche accdb mit einem Modul und (hier) Formularen. Im Modul steht eine Funktion "frm_oeffnen", die das Form öffnet: Docmd.OpenForm "frm_name".
Kann man das so sagen mit der Bibliotheks-DB?

In einer weiteren accde "Anwendung" wird auf diese Bibliotheks-DB verwiesen: Extras-Verweise...
Außerdem wird in dieser DB die Funktion "frm_oeffnen" aufgerufen.

Jetzt verstehe ich die OLH so:
- falls in der Bibliotheks-DB das Formular "frm_name" vorhanden ist, wird es geöffnet ("das Formular mit diesem Namen zuerst in der Bibliotheksdatenbank ...")
- falls das Form dort nicht vorhanden ist, wird es in der accde "Anwendung" gesucht. Falls es dort vorhanden ist, wird es geöffnet ("...und dann in der aktuellen Datenbank gesucht").

Bei mir funktioniert das auch nach langem probieren und suchen nicht! Was könnte ich falsch gemacht haben? Oder verstehe ich die OLH nicht richtig?

Anne Berg
11.06.2012, 23:36
Hallo,

ich hab jetzt grad kein Access 2010 zur Verfügung, kenne das aber aus früheren Versionen so, dass man Objekte wie Formulare und Berichte, die sich in der Bibliotheks-Datenbank befinden, nur mit Hilfe von Funktionen, die sich in der Bibliotheks-Datenbank befinden, öffnen kann.

Es würde mich wundern, wenn das in A2010 plötzlich anders funktionieren würde - allerdings sprechen deine Zitate durchaus dafür...

Marsu65
11.06.2012, 23:37
Hallo.
Unter Bibliotheksdatenbank verstehe ich eine gewöhnliche accdb ...
In einer weiteren accde "Anwendung" ...
Ist das nur ein Tippfehler?
Für eine mde/accde Anwendung muss IMHO auch die Bibliothek im mde/accde-Format sein.
Link:http://www.access-im-unternehmen.de/index1.php?id=300&BeitragID=639

Bei mir funktioniert das auch nach langem probieren und suchen nicht!
Wie macht sich das konkret bemerkbar?

@Anne
Ich verstehe das schon so, dass swelz in der Anwendung die Funktion frm_oeffnen aus der Bibliothek aufruft, in der wiederum per OpenForm das Formular geöffnet wird.

swelz
12.06.2012, 10:57
Hallo

@Marsu:
nein, kein Tippfehler. Aber" Danke" für den Reminder. Hatte den Fall schon mal - es geht tatsächlich nicht, eine accdb/mdb per Verweis an eine accde/mde zu binden - schade eigentlich.

Trotzdem: Der eigentliche beschriebene Sachverhalt tritt auch bei zwei accdb/mdb auf (accdb_1 mit Verweis auf accdb_2)

Wie sich das äußert:
mit Fehler 2103 - Berichtsname falsch geschrieben oder Bericht nicht gefunden.
Der Fehler wird in der Funktion (die steht inb der accdb_2), die das Form öffnen soll, behandelt. Dann läuft das Programm in der verweisenden accdb_1 weiter, ohne das dass "... dann in der aktuellen Datenbank gesucht" wird.

Marsu65
12.06.2012, 13:14
Hallo,

ich habe das Konstrukt gerade mal ausprobiert.
Jedenfalls unter Acc2003 (beides mdb, ungebundene Formulare) funktioniert das.

swelz
12.06.2012, 13:59
Hallo,

ich habe das Konstrukt gerade mal ausprobiert.
Jedenfalls unter Acc2003 (beides mdb, ungebundene Formulare) funktioniert das.

Hallo,

mit ugebndenen habich das nicht geteset.
Werde das nochmal mit ACC10/ungebundene Forms/accdb mal nachbauen. Melde ich dann wieder

Danke

swelz
12.06.2012, 14:35
Hallo,

mit ugebndenen habich das nicht geteset.
Werde das nochmal mit ACC10/ungebundene Forms/accdb mal nachbauen. Melde ich dann wieder

Danke

So, getestet - geht nicht! Verhalten wie oben beschrieben.
Irgendwas scheint anders zu sein.

Wenn ich Zeit habe, mache ich das auch mal mit mdb's im Acc03-Format nach.

Anne Berg
12.06.2012, 16:32
Hallo,

nun habe ich mir auch mal ein Beispiel in Access 2010 gebastelt und es funktioniert!
Fragt sich also, was du wohl falsch machen könntest. Am besten, du lädst dein Beispiel mal hoch.

swelz
14.06.2012, 09:09
So, hab auch mal ganz einfache Spiel-DBs gebaut, mit Access 2007 im accde-Format.
Es funktioniert. Meine Vermutung weshalb das in meiner Prod-DB nicht geht, ist, weil nicht alle Felder mit einer Datenquelle versorgt sind, wenn das Form der Lib-DB aufgerufen werden soll. Die Fehlermeldung dann ist eben etwas unspezifisch.
Damit - wer Interesse hat - das mal ausprobieren kann, lade ich meine Spiel-DBs mal hoch.

Danke für Eure Hilfe!