VB6 / MS-Access / Funktionsliste von Verweis

Hallo zusammen,

ich habe in Access Verweise hinterlegt (zb. nach Excel, usw), um entsprechende Objekte nutzen zu können. Ich bräuchte nun die Möglichkeit (und irgendwie ist es möglich, denn der „Objektkatalog“ kann das ja auch!), eine Liste der Funktionen/Methoden/Eigenschaften der einzelnen Verweise zu bekommen.

Hintergrund (vielleicht kennt jemand eine besser Alternative als den von mir gedachten Weg):
einige der User, welche die MDB benutzen, bekommen einen Laufzeitfehler bei den „Basis-Funktionen“ aus dem Verweis auf die VBA-Library.

zB bei folgender Zeile:
str = left(„Hallo Welt“, 5)
„left“ wird nicht erkannt!

referenziere ich explizit …
str = vba.left(„Hallo Welt“, 5)
… dann funktioniert es.

Da der Code in der MDB relativ umfassend ist und ständig überarbeitet wird, ist ein „manuelles durchforsten“ des Code und Setzen von „vba.“ vor den Funktionsnamen illusorisch.

Ich wollte nun eine Sub schreiben, die den gesamten VBA-Code durchläuft (soweit kein Problem) und jedes vorkommen von " left(" ersetzt durch " vba.left(". Auch das ist kein Problem.

ABER … dummerweise gibt es ja noch mehr als nur die Funktion „left“. Deswegen müsste ich eine „Liste“ der Funktionen in Application.References(„VBA“) haben - nur ich bekomme es einfach nicht hin.

Irgendwie muss man doch zur Laufzeit herausfinden können (so wie es eben der Objektkatalog auch tut) welche Elemente (also Methoden usw.) in dem Verweis „VBA“ vorhanden sind.

Weiß jemand weiter?

verzweifelte Grüsse
MindShape

hallo Mind,

Hintergrund (vielleicht kennt jemand eine besser Alternative
als den von mir gedachten Weg):
einige der User, welche die MDB benutzen, bekommen einen
Laufzeitfehler bei den „Basis-Funktionen“ aus dem Verweis auf
die VBA-Library.

zB bei folgender Zeile:
str = left(„Hallo Welt“, 5)
„left“ wird nicht erkannt!

referenziere ich explizit …
str = vba.left(„Hallo Welt“, 5)
… dann funktioniert es.

dann stimmt mit deinen Verweisen was nicht.

Wie man das was der Objektkatalog anzeigt selbst ausliest weiß ich nicht.

Löse das Problem in den Verweisen und das Problem ist weg.

Zur Not, bastle eine mdb mit einem winzigen Makrocode wo Left vorkommt.
Garantiert läuft das auf anderen Rechnern, bei deinem halt nicht.

Dann gib bekannt welche Officeversion du hast, lade die mdb hoch mit FAQ:2606

Wenn dann jmd. die gleiche Version hat und bei ihm läuft der Code, so kann er dir sagen welche Verweise auf welche Dateien er hat.

GGfs. mußt du dann, wenn Excel, äh Access nicht läuft, diese dateien in ein anderes Verzeichnis verschieben.
Dann Access starten, die haken bei den Verweisen entfernen.
Dann Access schliessen.
Dann die dateien wieder auf den alten Platz verschieben oder da lassen wo sie sind.

Jetzt Access starten und mittels „Durchsuchen“ die Verweise wieder anlegen.

Gruß
Reinhard

Hallo Reinhard

vielen Dank für die Antwort. Was die Verweise angeht: man KANN den Verweis auf VBA weder setzen noch entfernen, da er autoamtisch gesetzt wird.

Auch wäre das ein nicht zu vertretender Aufwand (weil nicht automatisiert), denn die DB (bzw. der Code darin) wird andauernd aktualisiert, erweitert, umgeschrieben, etc - und es sind knapp hundert User, die darauf zugreifen. Es MUSS also automatisiert sein … und über die Verweise kann man es nicht regeln (die kann man zwar automatisiert hinzufügen/entfernen etc. - aber nicht die verweise auf Access und VBA).

Es wird also weiterhin eine Lösung gesucht, wie man die Funktionen eines Verweises (einer Reference) ausgelesen werden können :frowning:((