Office: (Office 2016) Wie einem CommandButton per VBA eine OnClick-Eigenschaft zuweisen?

Helfe beim Thema Wie einem CommandButton per VBA eine OnClick-Eigenschaft zuweisen? in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Forum, ich möchte per VBA einem CommandButton eine OnClick-Eigenschaft zuweisen. Leider sagt mir Access aber immer, dass er die zugewiesene... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von zachy, 17. März 2017.

  1. Wie einem CommandButton per VBA eine OnClick-Eigenschaft zuweisen?


    Hallo Forum,

    ich möchte per VBA einem CommandButton eine OnClick-Eigenschaft zuweisen. Leider sagt mir Access aber immer, dass er die zugewiesene VBA-Prozeduren nicht findet.

    Hier mein Code:

    Code:
    Bei der Schreibweise der Ereignisprozedur halte ich mich an Microsoft:
    https://msdn.microsoft.com/de-de/lib.../ff845322.aspx

    Da es sich um VBA-Code handelt, den ich aufrufen möchte, verwende ich die Schreibweise mit den eckigen Klammern und den Anführungszeichen.
    Der Button wird wie gesagt ordnungsgemäß erstellt, aber wenn ich ihn anklicke erhalte ich die folgende Fehlermeldung:

    Habt ihr eine Idee was ich falsch mache?

    Beste Grüße

    zachy

    :)
     
  2. Hallo!

    Willst du per Code eine Ereignisbehandlung (also über WithEvents) aktivieren oder willst du eine Funktion ausführen lassen?

    Damit die Ereignisbehandlung läuft:
    Code:
    .. und dann über den VBA-Code mittels Ereignisprozedur behandeln.
    Anm.: falls du den auch noch per VBA einfügen willst, kannst du das im Entwurf z. B. über die CreateEventProc-Methode der Modul-Klasse umsetzen (In diesem Fall musst du [Event Procedure] nicht einstellen.)

    Falls du nur eine Funktion (muss Function sein, Sub geht nicht) ausführen lassen willst:
    Code:
    mfg
    Josef
     
    Josef P., 19. März 2017
    #2
  3. Hallo Josef,

    ich weiß nicht, ob ich dich richtig verstanden habe. Ich möchte, dass wenn auf den Button geklickt wird, eine Prozedur ausgeführt wird.
    Ich soll also den Text Event Procedure nicht durch den Namen der Prozedur ersetzen. Ok, ich habe jetzt folgendes in meinem Code geändert:

    Code:
    Damit Access meine Prozedur findet, habe ich sie jetzt folgendermaßen benannt (liegt natürlich im gleichen Modul):

    Code:
    Access bringt nun keine Fehlermeldung, wenn ich auf den Button klicke. Allerdings passiert auch nichts. Irgendwas ist noch nicht richtig.

    Kannst du mir bitte noch mal helfen?
     
  4. Wie einem CommandButton per VBA eine OnClick-Eigenschaft zuweisen?

    Hallo!

    Dann reicht:

    Code:
    mit:
    Code:
    Falls du die Ereignisbehandlung über eine Eventprozedur machen willst und ich dich mit etwas mehr Code "erschlagen" darf: CodeModuleWriter.cls
    Die Methode AddCodeToEventProcedure fügt den Code in die Ereignisbehandlungsprozedur an.

    Luftcode für deinen Anwendungsfall:
    Code:
    mfg
    Josef
     
    Josef P., 19. März 2017
    #4
  5. Hallo Zachy,

    Du kannst auch mal hier nachlesen.


    Gruß Carsten
     
    DbSam2003, 19. März 2017
    #5
  6. mit:
    Code:
    Hallo Josef,

    ich habe es so probiert wie von dir geschildert. Leider haut mir Access jetzt wieder eine Fehlermeldung um die Ohren. Hier noch mal zur Sicherheit der komplette Code:

    Code:
    Im gleichen Modul liegt diese Funktion:

    Code:
    Access sagt nun:

    Was ich vielleicht noch dazu sagen sollte:
    Der gesamte Code, also sowohl das Erstellen der Buttons, als auch die Funktion die aufgerufen werden soll, sind Bestandteile eines Klassenmoduls.
    Kann es vielleicht damit etwas zu tun haben?

    P.S. CodeModuleWriter.cls Habe ich mir noch nicht ausführlich angeschaut. Ich hoffe das es erst mal ohne geht. :-D

    P.P.S. Hallo Carsten, dein Link führt bei mir zu einer toten Seite.

    Gruß
    zachy
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  7. Hallo!

    Ok, das ist das Problem. *wink.gif*
    Die Funktion, die bei OnClick eingetragen ist, muss entweder in der Formularklasse vom Formular mit dem Button sein oder als Public Function in einem Standardmodul.
    Wenn du in einer Klasse auf das Click-Ereignis reagieren willst, musst du WithEvents verwenden.

    Kannst du einmal kurz beschreiben, was du machen willst?

    Für mich klingt es etwas eigenartig, dass du den Code zum Einfügen eines Buttons in ein Formular in der gleichen Klasse wie die Ereignisbehandlung, die auf das Click-Ereignis reagieren soll, hast.
    .. das eine ist Code für den Formularentwurf, das andere ist Code, den man zur Laufzeit benötigt.


    Kennst du die WithEvents-Anweisung?

    In die Klasse, die auf den Button-Click reagieren soll, schreibst du folgendes:
    Nur Luftcode!
    Code:
    mfg
    Josef
     
    Josef P., 19. März 2017
    #7
  8. Wie einem CommandButton per VBA eine OnClick-Eigenschaft zuweisen?

    Aha, 'ausgesternelt':http://www.*************************154593_0_0_asc.php

    Ich war viele Jahre nicht hier und nach so vielen Jahren kann man immer noch keinen Link zum Nachbarforum setzen. Ich wundere mich immer wieder ...
    ... Kindergarten.

    Der Link sollte dahin zeigen:
    http://www.office - loesung.de/ftopic154593_0_0_asc.php
    (Bitte kopieren und die beiden Leerzeichen vor und nach dem Minuszeichen entfernen.)


    Das funktionierte früher jedenfalls und sicher auch heute noch so.
    Wobei ich das heute in Klassen auslagern würde.


    Gruß Carsten
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    DbSam2003, 19. März 2017
    #8
  9. mfg
    Josef

    Hallo Josef,

    danke genau das war's! Ich habe die Funktion jetzt in ein anderes Modul gelegt und es funktioniert einwandfrei! :-D

    Zu deiner Frage was ich tue:

    Ich greife mit meiner Access-Datenbank auf einen SQL Server zu und möchte für jede Tabelle auf dem SQL Server ein Suchformular anlegen. Da ich nicht jedes Suchformular per Hand anlegen möchte, habe ich eine Klasse geschrieben, welche das für mich übernimmt und unter anderem die richtige Anzahl an Suchfeldern angelegt.

    Der Button soll letztendlich die Suche auslösen. Die Prozedur, welche die gewünschten Daten aus dem Server abruft, ist ebenfalls fertig. Es scheiterte bislang nur an dem Klick auf den Button.

    Aber jetzt funktioniert es! Vielen Dank noch mal! *biggrin.gif*

    Mit den besten Grüßen

    zachy
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  10. Hallo!

    Interessehalber nachgefragt:
    Wie gehst du bei dieser automatischen Suchfeldererstellung mit Fremdschlüsselfeldern um? Liest du die Beziehung automatisiert aus und verwendest Comboboxen als Filter-Steuerelement?

    Weil es zum Thema "Suchformular erstellen" passt:
    Die von mir erwähnte CodeModuleWriter-Klasse wird in einem Add-In verwendet, dass bei der Erstellung von Such-/Filter-Formularen hilft.
    Arbeitsweise des ACLib-FilterForm-Wizard kannst du als Video ansehen. (Video ist ungekürzt - du siehst in 7:30 min wie ein Filterformular entsteht.)

    mfg
    Josef
     
    Josef P., 20. März 2017
    #10
Thema:

Wie einem CommandButton per VBA eine OnClick-Eigenschaft zuweisen?

Die Seite wird geladen...
  1. Wie einem CommandButton per VBA eine OnClick-Eigenschaft zuweisen? - Similar Threads - CommandButton VBA OnClick

  2. Ein Fall für VBA... oder nicht?

    in Microsoft Excel Hilfe
    Ein Fall für VBA... oder nicht?: Hallo zusammen, ich habe eine schwierige Nuss zu knacken. Ich habe eine Tabelle, bei der immer 1 von 3 Werten (Bewehrt, Stahlfaser, Walzbeton) ausgewählt werden muss. Wie kann ich es...
  3. VBA CommandButton einblenden abhängig von Eintrag in Zeile

    in Microsoft Excel Hilfe
    VBA CommandButton einblenden abhängig von Eintrag in Zeile: Hallo Leute, nachdem ich fleißig VBA geübt habe und schon komplett eigene Codes erfolgreich zum Laufen gebracht habe (Dank der Hilfe hier!), stoße ich nun doch wieder an eine Grenze. Ich habe...
  4. Mitgliederliste aktualisieren

    in Microsoft Excel Hilfe
    Mitgliederliste aktualisieren: Hallo zusammen, ich habe ein Problem. Ich möchte mit einer Combobox1 und einem Textfeld1 über einen CButton eine Liste aktualisieren bzw. Namen hinzufügen. In der Combobox1 sollen die...
  5. Blattschutz VBA mit PW und Bedingungen

    in Microsoft Excel Hilfe
    Blattschutz VBA mit PW und Bedingungen: Hallo VBA'ler Kenne mich nicht wirklich mit VBA aus, habe es aber geschafft, eine mit PW geschützte Tabelle via Button zu entsperren und wieder zu sperren. Der Button dient dazu, die gesetzten...
  6. Mit Commandbutton VBA öffnen

    in Microsoft Excel Hilfe
    Mit Commandbutton VBA öffnen: hallo Forum, ich habe eine frage ich will mit einem Commandbutton VBA öffnen und dieses mit einem Kennwort schützen. geht sowas? Danke schonmal im Vorfeld*rolleyes.gif* 364756
  7. Über Command Button dynamisch Dokumente öffnen

    in Microsoft Excel Hilfe
    Über Command Button dynamisch Dokumente öffnen: Hallo Zusammen, Ich habe eine Tabelle in der über unterschiedliche Kriterien, Produkte angezeigt werden. Nun möchte ich dazu, zu dem entsprechenden Produkt, über einen CommandButton die...
  8. Excel VBA Suche mit Hilfe Command Buttons anzeigen

    in Microsoft Excel Hilfe
    Excel VBA Suche mit Hilfe Command Buttons anzeigen: Hallo Ich habe eine UserForm erstellt, welche mit voneinander Abhängige Comboboxen sucht. Dabei wurde mir schon geholfen in diesen Forum. Ich würde mir gerne das Ergebnis mithilfe eines...
  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