Discussion:
Menü-Add-In aus VBA-Code starten
(zu alt für eine Antwort)
Josef Poetzl
2009-11-14 09:18:06 UTC
Permalink
Hallo!

Wie kann man aus VBA ein Access-Add-In (Menü-Add-In) starten?

Meine aktuelle Lösung:
| Dim cb As CommandBar
| Dim cp As CommandBarPopup
| Dim cc As CommandBarButton
|
| Set cb = Application.CommandBars("Menu Bar")
| Set cp = cb.FindControl(10, 30038, , , True) '30038 = "Add-&Ins"
|
| For Each cc In cp.Controls
| If cc.Caption = AddInName Then
| cc.Execute
| Exit For
| End If
| Next

Allerdings begeistert mich der Weg über das Menü nicht besonders.
Kennt jemand eine bessere Variante, um ein Access-Add-In per VBA zu
starten?

Anm.: Leider fand ich bei den Access-Add-Ins keine so schöne
Schnittstelle wie für die COM-Add-Ins (Application.COMAddIns).


mfg
Josef
--
EPT: (Access Error Prevention Table) http://access.joposol.com/
FAQ: (Access-FAQ von Karl Donaubauer) http://www.donkarl.com/
Peter Doering
2009-11-14 11:44:51 UTC
Permalink
Hallo,
Post by Josef Poetzl
Wie kann man aus VBA ein Access-Add-In (Menü-Add-In) starten?
[...]
Allerdings begeistert mich der Weg über das Menü nicht besonders.
Kennt jemand eine bessere Variante, um ein Access-Add-In per VBA zu
starten?
Leider nein. Ich haette erwartet, dass es zumindest eine
RunCommand-Variante dafuer gibt, hab aber auch da nichts gefunden.

Gruss - Peter
--
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
Oliver Straub
2009-11-14 11:58:32 UTC
Permalink
Hallo Josef,
Post by Josef Poetzl
Wie kann man aus VBA ein Access-Add-In (Menü-Add-In) starten?
| Dim cb As CommandBar
| Dim cp As CommandBarPopup
| Dim cc As CommandBarButton
|
| Set cb = Application.CommandBars("Menu Bar")
| Set cp = cb.FindControl(10, 30038, , , True) '30038 = "Add-&Ins"
|
| For Each cc In cp.Controls
| If cc.Caption = AddInName Then
| cc.Execute
| Exit For
| End If
| Next
Allerdings begeistert mich der Weg über das Menü nicht besonders.
Kennt jemand eine bessere Variante, um ein Access-Add-In per VBA zu
starten?
da gibt es eine sehr einfache und interessante Methode für so was. Das hatte
hier mal ein Fragensteller angebracht. Ich war einigermaßen begeistert, weil
man so ein late binding von mde zu mde realisieren kann. Ich wollte es dann
bei einer Benutzerverwaltung anwenden und kurz bevor ich fertig war, ging es
nicht mehr. Irreversibel. Egal was ich gemacht habe, die aufgerufene
Funktion wurde nicht mehr gefunden. Wie das funktioniert, bzw. wieso es
plötzlich nicht mehr funktionierte weiss ich leider nicht. Da wäre ich sehr
interessiert dran, da ich es so nicht einsetzen kann, es aber toll wäre,
wenn ich es einsetzen könnte(!).

Probiere es doch mal aus. Meine Startfunktion heißt StartUp.

Application.Run "C:\Dokumente und
Einstellungen\...\Anwendungsdaten\Microsoft\AddIns\A02_GOSTAnatomizer.StartUp"

Habe es gerade getestet, bei mir funktioniert es.


Gruss
Oliver
Josef Poetzl
2009-11-14 12:23:29 UTC
Permalink
Hallo!
Post by Oliver Straub
Post by Josef Poetzl
Wie kann man aus VBA ein Access-Add-In (Menü-Add-In) starten?
da gibt es eine sehr einfache und interessante Methode für so was. Das hatte
hier mal ein Fragensteller angebracht. Ich war einigermaßen begeistert, weil
man so ein late binding von mde zu mde realisieren kann. Ich wollte es dann
bei einer Benutzerverwaltung anwenden und kurz bevor ich fertig war, ging es
nicht mehr. Irreversibel. Egal was ich gemacht habe, die aufgerufene
Funktion wurde nicht mehr gefunden. Wie das funktioniert, bzw. wieso es
plötzlich nicht mehr funktionierte weiss ich leider nicht. Da wäre ich sehr
interessiert dran, da ich es so nicht einsetzen kann, es aber toll wäre,
wenn ich es einsetzen könnte(!).
Probiere es doch mal aus. Meine Startfunktion heißt StartUp.
Application.Run "C:\Dokumente und
Einstellungen\...\Anwendungsdaten\Microsoft\AddIns\A02_GOSTAnatomizer.StartUp"
Danke! Genau so etwas habe ich gesucht. :-)
Das funktioniert einwandfrei.

mfg
Josef

Loading...