Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

VBA Code anzeigen lassen

Begonnen von AccessDo66, Juli 10, 2023, 19:03:17

⏪ vorheriges - nächstes ⏩

AccessDo66

Hallo,

wenn ich bei einem Steuerelement per Drücken der "Ereignis" Taste mir den VBA Code anzeigen lassen will wird mir statt dessen "Gehe zu Datensatz" angezeigt. Wie komme ich zur Ansicht des VBA Codes? Meine Frage hat sich wohl erledigt. Wenn ich über das Eeigenschaftenblatt gehe, wird mir beim Klick auf Ereignisprozedur
"Private Sub Befehl92_Click()
End Sub" angezeigt. ImLehrbuch von 2017 stehen für diese Aktion viel mehr Code Zeilen. Aber wenn ich eine MsgBox einsetze, wird der Befehl ausgeführt. Liegt das an der aktuellen Vision von meinem Access?

MzKlMu

#1
Hallo,
was ist denn die Ereignis Taste ?
Eine solche Taste wäre mir nicht bekannt.

Zum VBA Code kommst Du in der jeweiligen Ereigniszeile, wenn hinten die 3 Punkte geklickt werden.

Siehe Bild.
Gruß Klaus

Debus

Hey, kann das sein das das wie im Bild aussieht? Das  ist bei den neueren Versionen so. Dann muss Du den Button auf das Form ziehen Abbrechen anklicken und dann wie gewohnt den Code eintippern.



Holger

Beaker s.a.

Sieht aus wie der Macro-Assi.
In den Optionen gibt es unter "Objekt-Designer" die Option
"Immer Ereignisprozeduren verwenden".
Wenn du die aktivierst, kommst du über die drei Punkte immer
autom. in den VBE.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, läßt etwas anderen geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

AccessDo66

#4
Hallo,
ja. so sieht es bei mir aus. Dein Vorgehen verstehe ich jedoch nicht. DoPaul

AccessDo66

Zitat von: MzKlMu am Juli 10, 2023, 19:22:41Hallo,
was ist denn die Ereignis Taste ?
Eine solche Taste wäre mir nicht bekannt.

Zum VBA Code kommst Du in der jeweiligen Ereigniszeile, wenn hinten die 3 Punkte geklickt werden.

Siehe Bild.


Ja, da hatte ich mich falsch ausgedrückt. Wenn ich die drei Punkte aktiviere erscheint: "Private Sub Befehl91_Click()

End Sub". Im Lehrbuch stehen zu meinem Steuerelement zwischen  "Sub" und "End Sub" jedoch noch mehr Code Zeilen. Das irritiert mich.

Debus

Hey , ziehe mal einen Button oder sonst ein Steuerelement auf eine Form und klicke dann auf Abbrechen im assi. Dann z.B. Rechte Maustaste auf das Element und dann im Kontextmenü auf code Dann sieht es aus wie früher. Oder noch besser nehme mal die Einstellung von Beaker vor dann ist es auch wie früher

DD

MzKlMu

Hallo,
ZitatIm Lehrbuch stehen zu meinem Steuerelement zwischen  "Sub" und "End Sub" jedoch noch mehr Code Zeilen. Das irritiert mich.
Das ist normal, den Code zwischen  "Sub" und "End Sub" musst Du selbst ergänzen, da geht nix automatisch.
Gruß Klaus

AccessDo66

#8
Es ist ein Access Steuerelement also Sub SteuerelementA()  End Sub. Diese Funktion beinhaltet einen vorprogrammierten Button. Daher gehe davon aus, dass eigentlich mehr Codezeilen sichtbar sein müssten. So steht es auch in diesem Lehrbuch von 2017.

MzKlMu

Hallo,
die Sub (es ist keine Funktion) beinhaltet gar nix. Da ist noch nicht mal ein Ereignis festgelegt.

ZitatSo steht es auch in diesem Lehrbuch von 2017.
Was steht denn in dem Lehrbuch ?



PS:
Bitte unterlasse das Zitieren vollständiger Beiträge.
Gruß Klaus

Beaker s.a.

Hallo,
Zitat"Private Sub Befehl91_Click()"
Das ist der Ereignis-Prozedurrumpf für das Ereignis "Beim Klicken" einer
Schaltfläche. Was da dann passieren soll (Code) musst du eben, wie gesagt,
selber schreiben.
Falls der Button schon mal Code in dem Ereignis hatte, und du mit den drei
Punkten nur den Rumpf bekommst, hast du den Button zwischendurch umbenannt.
Obwohl das bei dem Namen nicht so aussieht, - ist ja die Standardbenamsung.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, läßt etwas anderen geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

AccessDo66

#11
Z.B das Steuerelement/Button von Access mit dem ich per Klick zum naechsten Datensatz springe. Die Befehlszeile "spring zum naechsten Datensatz",in VBA Code geschrieben, vermisse ich.



Was steht denn in dem Lehrbuch ? Das müsste ich mir beim naechsten Bibliothekbesuch nochmals anschauen.
Z.B. beim Access Steuerelement/Button, mit meiner Einstellung-springe zum naechsten Datensatz- wird auch nur "Private Sub Befehl8_Click()

End Sub" angezeigt. Den Befehl in VBA Code "Spring zum naechsten Datensatz" vermisse ich.

MzKlMu

Hallo,
ZitatDie Befehlszeile "spring zum naechsten Datensatz",in VBA Code geschrieben, vermisse ich.
Das macht Access nicht automatisch. VBA Code musst Du selbst anlegen.


Noch mal die Bitte:
Unterlasse bitte das Zitieren vollständiger Beiträge. Du hattest sogar einen Beitrag komplett 2x zitiert.
Gruß Klaus

Köbi

Du bringst anscheinden etwas durcheinander, Makros und VBA-Befehle.
Wenn du im Formularentwurf eine neue Schaltfläche einfügst, kommst du automatisch zum Befehlsschaltflächen-Assistenten. Dieser bietet verschiedene Kategorien mit dazugehörenden Aktionen zur Auswahl an. Wenn du auf diesem Weg weitermachst, erstellt Access eine Befehlsschaltfläche mit einem sogenannten "Eingebetteten Makro". Das siehst du sofort im anschliessenden Eigenschaftenblatt.
Wenn du dort nun auf die 3 Punkte klickst, wird das Makro angezeigt. Nun sind aber Makros generell verpönt, weil unflexibel. Mit dem Pfeil nach unten kannst du nun zur Ereignisprozedur wechseln. Machst du das, ist das eingebettete Makro weg, und du erhältst z.B. folgenden Code-Rumpf
Private Sub Befehl2_Click()
End Sub
Diesen Code musst du nun mit einem eigenen Befehl füllen, wie übrigens schon mehr als einmal erwähnt.. Beispielsweise um zum nächsten Datensatz zu springen
Private Sub Befehl2_Click()
   DoCmd.GoToRecord , , acNext
End Sub
Für solch einfache Aktionen sind die Makros ausreichend. Wenn man aber mehr will, braucht man Ereignisprozeduren.
Ich selbst, verwende den Befehlsschaltflächen-Assistenten nicht, klicke dort sofort auf Abbrechen und sage der Schaltfläche mit VBA-Code, was ich will.
Setzt natürlich voraus, dass Kenntnisse in VBA vorhanden sind.

Beaker s.a.

Oder auf das DoCmd-Objekt verzichten und die eingebauten Methoden des
Forms bzw. des zugrundeliegenden RS verwenden
Me.Recordset.MoveNext
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, läßt etwas anderen geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)