Hi,
ich habe in einem Formular eine Schaltfläche. Nun hatte ich schon über das Ereignis "Bei Klicken" auf den Makro-Generator gedrückt und einige Dinge hinzugefügt.
Nun möchte ich noch zusätzlich eine Anweisung über den Code-Generator hinzufügen. Wenn ich nun aber auf die drei Punkte gehe (es steht ja schon eine Ereignisprozedur bei diesem Ereignis --> Makros) lande ich stehts wieder im Makro-Generator und komme nicht in den VBA-Editor.
Wie kann ich das denn umgehen?
Vielen Dank für eure Hilfe,
Marcus
Hallo,
ZitatNun möchte ich noch zusätzlich eine Anweisung über den Code-Generator hinzufügen.
das kann man nicht mischen, entweder Makro oder VBA. Man könnte eine VBA
Funktion für die gewünschte Aktion schreiben und diese im Makro aufrufen.
Ah, ok.
Ich habe folgende Dinge mit dem Makro-Generator getan:
FestlegenTempVar (4x)
Und im VBA wollte ich die DoCmd.OpenReport-Funktion verwenden.
Wie könnte ich denn im VBA Editor die TempVars bestimmen?
Hallo,
wie gesagt, Du kannst nicht beides.
Du musst auch das was das Makro macht in VBA umwandeln.
Was macht das Makro genau ?
Siehe auch hier:
http://www.access-basics.de/index.php/TempVars_unter_VBA.html
PS:
Mit "TempVar Access" gegoogelt und ich hatte in einer Sekunde obigen Link. Gleich der 1. Treffer.
Das habe ich mir auch durchgelesen und der sehr kurze und spezielle Anwendungsfall hat leider nicht auf mein Hintergrund zugetroffen.
Ich habe mehrere Felder wie z.B. ein Start Datum, ein End-Datum und Listenfelder, in denen ich mir ein bestimmtes Produkt auswählen kann.
Die Werte aus diesen Feldern sollen dann als TempVar gespeichert werden damit ich sie bei Abfragen und Berichten dann entsprechend nutzen kann.
Beispiel: Ich wähle als Start Datum den 1.1.2015 und als End Datum den 31.12.2015 aus, als Produkt gebe ich Vanille Eis an.
Eine von mir gestaltete Abfrage würde dann alle Verkäufe im Jahr 2015 von Vanille Eis angeben.
Diese TempVars sollen mit Klick auf dem Butten im "Auswahl-Formular" hinzugefügt werden.
Also würde ich auf die Schaltfläche gehen und dann unter Ereignissen "Beim Klicken" den Code-Generator öffnen.
Dort würde ich dann anscheinend
TempVars.Addnutzen.
Nun müsste ich aber der Temporären Variable noch einen Namen geben und ihr ein Objekt zuweisen, damit klar ist, welcher Wert aus welchem Textfeld/Listenfeld gespeichert werden soll.
Ich habe es selbst an einem Beispiel versucht:
ZitatPrivate Sub Befehl4_Click()
TempVars.Add('FieldTripVillage',[Liste2])
End Sub
Hier zeigt er mir immer wieder einen Syntakfehler an und markiert dabei die Private Sub Zeile gelb. Befehl4 ist der Name der Schaltfläche.
Wenn du mir da weiterhelfen könntest, wäre ich dir sehr dankbar.
Hallo,
Private Sub Befehl4_Click()
TempVars.Add "FieldTripVillage",Me!Liste2.Column(0)
End Sub
Hallo!
Danke. Das funktioniert!
Wie müsste das dann bei einem Textfeld sein?
Da nehme ich doch nicht .Column(0) nach dem Namen des Textfeldes? Und wird das "Me!" nicht zu "Me."?
Hallo,
warum fragst Du eigentlich, wenn Du selbst schon eine Lösung (Vermutung) hast...
Selbst ist der Mann.
Probier's einfach ....
Weil ich es probiert habe und mir eine Fehlermeldung entgegen springt.
Je nachdem, was ich in welchen Kombinationen (siehe oben) ausprobiert habe in unterschiedlichster Art und Weise.
Hallo,
dann frag doch konkret nach der Meldung...
Wie lautet die?
zu ./! :
http://www.donkarl.com/?FAQ6.3
Nehme ich
ZitatTempVars.Add "StartDate", Me.Text2
kommt: TempVars können nur Daten, aber keine Objekte speichern.
Nehme ich
TempVars.Add "StartDate", Me.Text2.Textkommt: SIe können darauf nur verweisen, wenn das Objekt den Fokus besitzt.
Nehme ich
TempVars.Add "StartDate", Me!Text2kommt: Siehe erste Fehlermeldung.
PS: Das die ersten beiden Varianten nicht funktionieren, liegt zumindest schon mal an dem Punkt statt Ausrufezeichen.
Hallo,
so sollte es gehen:
TempVars.Add "StartDate", Me!Text2.Value
oder evtl. auch:
TempVars.Add "StartDate", CStr(Me!Text2)
(was mich aber sehr verwundert)
Welche Access-Version benutzt Du?
Mit ersterem funktioniert es. Vielen Dank! :)
Ich benutze Access 2013
Hallo Franz,
Hast Du eine Erklärung dafür, warum VBA hier
TempVars.Add "StartDate", Me!Text2
nicht, wie üblich, die Standardeigenschaft (.Value) verwendet?
gruss ekkehard
Hallo,
ich bin ja anfänglich auch darauf hereingefallen...
Vermutlich und weil die Tempvars-Auflistung aus der Makro-Ecke kommt, hat der Entwickler dieses Dingens keine Default-Eigenschaft gekannt.... 8) :'(
Hallo Franz,
alles klar, ist 'ne Erklärung.
Mir ist's aber egal, da ich eh immer auch die Standardeigenschaften codiere.
gruss ekkehard
Hi,
ja,
der m. E. einzige Vorteil ist, dass ein Tempvar-Element direkt in einem SQL-Statement benutzt werden kann.