Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Ausführen von VBA-Code aus autoexec-Makro heraus

2,237 views
Skip to first unread message

Hannes Schuster

unread,
Oct 22, 2000, 3:00:00 AM10/22/00
to
Hallo Experten,

ich möchte aus dem Maro autoexec heraus einen VBA-Code ausführen. Ich
habe diesen VBA-Code in ein Modul geschrieben. Der Code ist also nicht
an ein Formular oder eine Befehlsschaltfläche gebunden.

Also nochmal zusammengefaßt:
das Modul heißt: startprozedur
die Prozedur heißt: Private Sub Dateien_loeschen ()

Um jetzt diese Prozedur aus dem autoexec-Makro auszuführen habe ich es
wie folgt probiert.

Aktion:
Öffnen Modul --> Modulname: startprozedur
--> Prozedurname: Dateien_loeschen ()
Ausführen Code --> Funktionsname: Dateien_loeschen ()

Ich hab's auch wie folgt probiert:
Ausführen code --> Funktionsnme: startprozedur; Dateien_loeschen ()
oder so:
Ausführen code -->Funktionsnme:
[Moule]![startprozedur]![Dateien_loeschen ()]

Access öffnet zwar jedes mal das Modul startprozedur erfolgreich,
meldet dann aber, daß es die Funktion/den Namen nicht finden kann.

Kann mir jemand sagen, wie ich die Prozedur vom Makro heraus
ansprechen soll. Die Online-Hilfe liefert leider kein konkretes
Beispiel und ich bin nicht gerade der Makrokönig.

Wäre für den entscheidenden Tip sehr dankbar.

Gruß Hannes

Peter Diem

unread,
Oct 22, 2000, 3:00:00 AM10/22/00
to
Hallo Hannes,

Hannes Schuster schrieb kürzlich,

Du schreibst ja das er die funktion nicht findet, also mach daraus eine
function und kein private sub
also : ausführen code, --> funktionsname: xyz
dann im Modul: function xyz()

Peter


Philipp Stiefel

unread,
Oct 22, 2000, 3:00:00 AM10/22/00
to
Hannes Schuster schrieb kürzlich:

>ich möchte aus dem Maro autoexec heraus einen VBA-Code
>ausführen. Ich habe diesen VBA-Code in ein Modul geschrieben.
>Der Code ist also nicht an ein Formular oder eine
>Befehlsschaltfläche gebunden.
>
>Also nochmal zusammengefaßt:
>das Modul heißt: startprozedur
>die Prozedur heißt: Private Sub Dateien_loeschen ()

[...]


>Kann mir jemand sagen, wie ich die Prozedur vom Makro heraus
>ansprechen soll. Die Online-Hilfe liefert leider kein
>konkretes Beispiel und ich bin nicht gerade der Makrokönig.

Mit der Makroaktion "AusführenCode" kannst du nur _Funktionen_
aufrufen.

Ändere deine Sub Private Sub Dateien_loeschen() in eine Funktion
Public Function Dateien_loeschen(). Im Makro unter
"AusführenCode" dann nur noch 'Dateien_loeschen()' eintragen.
Dann funktionierts und brauchst auch nicht das Modul vorher zu
öffnen.

HTH
Phil

--
Ich beantworte keine technischen Fragen per Email
Richtig zitieren: http://www.afaik.de/usenet/faq/zitieren/
Mein Codekabinett: http://www.codekabinett.com/
Karl Donaubauer's Access-FAQ: http://www.donkarl.com

Sascha Wostmann

unread,
Oct 22, 2000, 3:00:00 AM10/22/00
to
Hannes Schuster :

> ich möchte aus dem Maro autoexec heraus einen VBA-Code ausführen. Ich
> habe diesen VBA-Code in ein Modul geschrieben. Der Code ist also nicht
> an ein Formular oder eine Befehlsschaltfläche gebunden.
>
> Also nochmal zusammengefaßt:
> das Modul heißt: startprozedur
> die Prozedur heißt: Private Sub Dateien_loeschen ()

"Private" dürfte hier falsch sein. Das bedeutet nämlich, dass diese
Sub nur innerhalb dieses Moduls sichtbar ist (also Privat für das
Modul). Außerdem kann man von Makros aus m.W. nur Funktionen aufrufen,
keine Subs. Richtig wäre also:

Function Dateien_loeschen() as Integer
Dateien_loeschen = 1
...
End Function

der Rückgabewert der Function ist in dem Fall egal, sollte aber mMn
gesetzt werden, ist einfach sauberer Programmierstil.


Sascha


--
s...@gmx.de BITTE KEINE FRAGEN PER MAIL - AUCH KEINE KOPIEN VON POSTINGS !
FAQ von Karl unter: http://www.donkarl.com/
Quote of Today :
Nicht alles, was zwei Backen hat, ist ein Gesicht.

Hannes Schuster

unread,
Oct 22, 2000, 3:00:00 AM10/22/00
to
On Sun, 22 Oct 2000 21:03:54 +0200, "Peter Diem"
<diem...@t-online.de> wrote:

>Hallo Hannes,
>
>Hannes Schuster schrieb kürzlich,
>> Hallo Experten,
>>

>> ich möchte aus dem Maro autoexec heraus einen VBA-Code ausführen. Ich
>> habe diesen VBA-Code in ein Modul geschrieben. Der Code ist also nicht
>> an ein Formular oder eine Befehlsschaltfläche gebunden.
>>
>> Also nochmal zusammengefaßt:
>> das Modul heißt: startprozedur
>> die Prozedur heißt: Private Sub Dateien_loeschen ()
>>

>> Um jetzt diese Prozedur aus dem autoexec-Makro auszuführen habe ich es
>> wie folgt probiert.
>>
>> Aktion:
>> Öffnen Modul --> Modulname: startprozedur
>> --> Prozedurname: Dateien_loeschen ()
>> Ausführen Code --> Funktionsname: Dateien_loeschen ()
>>
>> Ich hab's auch wie folgt probiert:
>> Ausführen code --> Funktionsnme: startprozedur; Dateien_loeschen ()
>> oder so:
>> Ausführen code -->Funktionsnme:
>> [Moule]![startprozedur]![Dateien_loeschen ()]
>>
>> Access öffnet zwar jedes mal das Modul startprozedur erfolgreich,
>> meldet dann aber, daß es die Funktion/den Namen nicht finden kann.
>>

>> Kann mir jemand sagen, wie ich die Prozedur vom Makro heraus
>> ansprechen soll. Die Online-Hilfe liefert leider kein konkretes
>> Beispiel und ich bin nicht gerade der Makrokönig.
>>

>> Wäre für den entscheidenden Tip sehr dankbar.
>>
>> Gruß Hannes
>
>Du schreibst ja das er die funktion nicht findet, also mach daraus eine
>function und kein private sub
>also : ausführen code, --> funktionsname: xyz
>dann im Modul: function xyz()
>
>Peter
>
>

D A N K E

Gruß Hannes


Hannes Schuster

unread,
Oct 22, 2000, 3:00:00 AM10/22/00
to
On Sun, 22 Oct 2000 20:04:24 GMT, s...@gmx.de (Sascha Wostmann) wrote:

>Hannes Schuster :


>
>> ich möchte aus dem Maro autoexec heraus einen VBA-Code ausführen. Ich
>> habe diesen VBA-Code in ein Modul geschrieben. Der Code ist also nicht
>> an ein Formular oder eine Befehlsschaltfläche gebunden.
>>
>> Also nochmal zusammengefaßt:
>> das Modul heißt: startprozedur
>> die Prozedur heißt: Private Sub Dateien_loeschen ()
>

>"Private" dürfte hier falsch sein. Das bedeutet nämlich, dass diese
>Sub nur innerhalb dieses Moduls sichtbar ist (also Privat für das
>Modul). Außerdem kann man von Makros aus m.W. nur Funktionen aufrufen,
>keine Subs. Richtig wäre also:
>
> Function Dateien_loeschen() as Integer
> Dateien_loeschen = 1
> ...
> End Function
>
>der Rückgabewert der Function ist in dem Fall egal, sollte aber mMn
>gesetzt werden, ist einfach sauberer Programmierstil.
>
>
>
> Sascha
>
>

Danke für die Aufklärung über den Zweck von Private Subs, ergibt sich
eigentlich eh schon aus dem Namen. Da bin ich offensichtlich mal
wieder ziemlich auf der Leitung gestanden.

Was die Definition der Funktion "as Integer" angeht, so scheint mir
die Methode von Peter einfacher und für meine Zwecke besser geeignet.

Gruß Hannes

0 new messages