Office: (Office 2007) Prozeduraufruf

Helfe beim Thema Prozeduraufruf in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Nun bin ich aber platt, Arne! *eek.gif* Bei dieser Methode scheint Access nicht zu merken bzw. zu ignorieren, dass der Aufruf aus demselben Modul... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Dierking, 21. Januar 2009.

  1. Prozeduraufruf


    Nun bin ich aber platt, Arne! *eek.gif*
    Bei dieser Methode scheint Access nicht zu merken bzw. zu ignorieren, dass der Aufruf aus demselben Modul kommt. Ein "Call test" würde gehen.
    Ich bitte, mir zu verzeihen. *wink.gif*

    @katharina: Was deine Frage betrifft, so würde ich das ehrlich gesagt lieber vermeiden, Ereignisprozeduren in Formularen von außen her aufzurufen. Das ließe sich umgehen, indem du eine Public Function anlegst, die du auch aus dem Ereignis heraus aufrufen kannst, um den Code nicht doppelt schreiben zu müssen.
     
    Anne Berg, 23. Januar 2009
    #16
  2. Habe mir schon gedacht, dass da ein Einwand kommen wird.
    Zum Hintergrund:
    Bisher musste die Ereignisprozedur per Doppelklick aufgerufen werden, jetzt
    will ich dieselbe Prozedur(ohne Anpassungen) über das Kontextmenü anbieten.
    Das Kontextmenü wird zentral und flexibel über die ganz o.g. Programmtabelle zusammengestellt werden.
    Jetzt gerät mein schöner Plan leider ins Stocken, weil ich diesen verdammten Aufruf nicht hin bekomme.
    Trotzdem, danke für den Hinweis und Gruß Katharina*Smilie
     
    Dierking, 23. Januar 2009
    #17
  3. Setzt du das Kontextmenü denn speziell für dieses Formular ein oder gilt das anwendungsweit?

    Ich will darauf hinaus, dass du die Sache deutlich eleganter lösen könntest, wenn du dich von den bestehenden Ereignis-Prozeduren trennen könntest und sie neu schreibst. Mit Hilfe von Screen.ActiveForm.Name kannst du den Code dann auf jedes beliebige Formular anwenden und hast kein Problem mehr mit dem Funktionsaufruf.

    Nachtrag:
    Dennoch habe ich mal ein paar Tests für dich gemacht (s.u.). *wink.gif*
     
    Anne Berg, 23. Januar 2009
    #18
  4. Prozeduraufruf

    Hallo Anne, erstmal vielen Dank für Deine Beispiele. Wenn ich mich daran halte, bekomme ich einen neuen Fehler 31005. (siehe Anhang)
    Eine Änderung in der Registry möchte ich allerdings unbedingt vermeiden.
    Zu Deinem Tipp:
    Je Formular werden eigene Kontextmenüs erstellt, die einmal bei allen dieselben Standardfunktionen wie Sortieren, Filtern etc. enthalten und zusätzlich indivdiuelle Funktionen haben. Screen.activeform.name geht daher leider nicht.
    Irgendwie drehe ich mich hier immer Kreis und tschüss
    Katharina *rolleyes.gif*
     
    Dierking, 25. Januar 2009
    #19
  5. Ich nutze für Proceduren, die vom Steuerelement bzw. Formular abhängig sind, gerne ActiveControl. Von dort aus komme ich dann mit Parent zur Formular-Referenz, mit der dich dann eine Methode des Formulars starten kann.

    Da sich das vermutlich ziemlich wirr liest *wink.gif*, ein Beispiel, mit dem ich eine Datei und über eine Formular-Methode einfüge:
    Code:
    (Funktion wird über einen Eintrag des Steuerelement-Kontextmenü aufgerufen)
    hm ... ob das jetzt verständlicher als die Beschreibung am Anfang ist? *biggrin.gif*
     
    Josef P., 25. Januar 2009
    #20
  6. Oh, da kümmert sich noch jemand - vielen Dank!
    Hatte schon gehofft, dass ich auf diesem Wege mehr Erfolg habe. Doch der Frust wird immer größer, die Fehlermeldung bleibt *frown.gif*

    Gruß Katharina
     
    Dierking, 25. Januar 2009
    #21
  7. Hallo Katharina,

    kannst du bitte mal erklären, was du mit dieser Funktion erreichen willst?
    *confused.gif*
     
    Anne Berg, 25. Januar 2009
    #22
  8. Prozeduraufruf

    Dann lass mal das Eval-Zeugs weg und geh sauber über die Form-Instanz. *wink.gif*

    Und damit das ganze etwas netter aussieht, schreibst du deinen Code im Form ein klein wenig um.

    Aus "private sub text1_DblClick(...) machst du:
    Code:
    Aufruf aus der Prozedur vom Kontextmenü:
    Code:
    BTW: was in meinem Beispiel-Code vom Beitrag #20 abläuft, ist aber schon klar, oder?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Josef P., 25. Januar 2009
    #23
  9. Hab mal versucht Deine Anregung aufzunehmen und dass Ganze in sprechenden Code darzustellen, hast ja recht. Doch auch ohne eval komme ich nicht weiter*redface
     
    Dierking, 25. Januar 2009
    #24
  10. Hallo Anne, das sind alles noch verzweilfelte Versuche extern an die Ereignisprozeduren von Formularen zu kommen. Sorry, der Anhang war sehr undeutlich.
    Ich kann es nicht verstehen, dass der externe Aufruf 'forms!MeinFormular.Feldereignis' funktioniert, aber sobald ich diesen Aufruf in einer Variablen stehen habe, streikt Access2007 mit 31005/Sandboxmodus.
    Vermutlich, muss ich das einfach akzeptieren.
    Gruß Katharina
     
    Dierking, 25. Januar 2009
    #25
  11. Da wirst du dich wohl mal mit dem Thema "Sandboxmodus" beschäftigen müssen. Ich hatte bisher noch nicht die Notwendigkeit, kann also nichts dazu beitragen. Es sollten sich aber genügend Informationen finden lassen, bei Microsoft oder Google etc.

    PS: Meine Frage in #22 war durchaus ernst gemeint.
    Kannst du erklären was du da tust?
    Was hat es mit der Tag-Eigenschaft auf sich, wie bzw. wozu setzt du die ein?
     
    Anne Berg, 25. Januar 2009
    #26
  12. Hast du es schon einmal mit CallByName(...) versucht?

    BTW:
    Warum benötigst du diesen Aufruf in einer Variablen? Wenn du die Referenz zum Form hast, kannst du doch ganz normal die Methode aufrufen.

    Anbei noch eine Beispiel-mdb mit dem Prinzip aus Beitrag #20:
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Josef P., 25. Januar 2009
    #27
  13. Prozeduraufruf

    Danke für die Beispiel-mdb, das Prinzip ist mir jetzt klar.
    Die Referenzen zu den Formularen und Standardfunktion (sortieren etc.) habe ich in einer Tabelle stehen, damit ich mit nur einer Funktion
    die Kontextmenüs erstellen kann.
    Gleichzeitig sind dann Änderung im Kontext sehr einfach.
    Da es ein bereits bestehendes Projekt (Acc2003 ->2007) ist, vermeide ich dadurch Programmanpassungen.
    Aber es soll wohl nicht so sein. CallByName(..) geht nämlich auch nicht.*mad.gif*
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Dierking, 26. Januar 2009
    #28
  14. Hallo noch einmal,

    es wundert mich, dass sich noch niemand (außer mir) hierzu geäußert hat:
    Ich denke nicht, dass du das "einfach akzeptieren" musst, ohne dich näher mit dem Thema auseinander zu setzen.

    Hier findest du z.B. einen Ansatzpunkt:
    http://www.pctipp.ch/praxishilfe/kum...box_modus.html
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Anne Berg, 26. Januar 2009
    #29
  15. Und was bedeutet "geht nicht"?
    Erstell doch einmal eine Beispiel-Anwendung, die das Problem zeigt.

    Was mich nämlich irritiert: warum läuft bei dir der Sandboxmode an? Ich dachte der gilt nur für Ausdrücke und nicht für direkte VBA-Aufrufe.

    Der Aufruf über CallbyName würde in meinem Beispiel z. B. so aussehen:
    Code:
     
    Josef P., 26. Januar 2009
    #30
Thema:

Prozeduraufruf

Die Seite wird geladen...
  1. Prozeduraufruf - Similar Threads - Prozeduraufruf

  2. Laufzeitfehler 5: Ungültiger Prozeduraufruf oder ungültiges Argument

    in Microsoft Access Hilfe
    Laufzeitfehler 5: Ungültiger Prozeduraufruf oder ungültiges Argument: Frohes neues ... ich bin gerade am durchdrehen. Folgender Code läuft auf einmal nicht mehr. Ich habe den auch in andern Modulen, selbst da läuft er nicht mehr. Er ist die ganze Zeit gelaufen. In...
  3. Access Meldung: "Ungültiger Prozeduraufruf"

    in Microsoft Access Hilfe
    Access Meldung: "Ungültiger Prozeduraufruf": Hallo zusammen, in Anlehnung an den Beitrag http://www.ms-office-forum.net/forum...d.php?t=333737 muss ich wegen eines Fehlers noch mal nachfassen. Das betreffende Formular lässt sich nicht mehr...
  4. ungültiger Prozeduraufruf

    in Microsoft Access Hilfe
    ungültiger Prozeduraufruf: Guten Morgen, ich habe ein Problem... jahrelang lief eine bestimmte ABfrage ohne Probleme durch (Tabellenerstellungsabfrage). Jedoch erscheint jetzt beim Ausführen folgendes Befehls: Bescheidnr:...
  5. Prozeduraufruf mit Call: "Argument nicht optional"

    in Microsoft Access Hilfe
    Prozeduraufruf mit Call: "Argument nicht optional": hallo zusammen, habe einen verwirrenden Fehler. Beim Laden eines Formulars will ich mit "Call" eine "Function" aufrufen. Danach kommt ein Fehler: "Fehler beim Kompilieren: Argument nicht...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden