Ich habe ein Formular mit einem Kombinationsfeld mit mehreren Werten. Darunter ein Button der beim Klicken, je nachdem welcher Wert im Kombinationsfeld gewählt wurde, ein bestimmtes Makro starten soll. Wie kann ich das lösen? Eventuell mit VBA?
Ich habe ein Formular mit einem Kombinationsfeld mit mehreren
Werten. Darunter ein Button der beim Klicken, je nachdem
welcher Wert im Kombinationsfeld gewählt wurde, ein bestimmtes
Makro starten soll. Wie kann ich das lösen? Eventuell mit VBA?
Hallo kinglui,
ja, genau! Mit VBA gehts ganz einfach:
If = then
Else If = then
End if
hoffe das hilft dir.
Gruß
Mareike
Hallo kinglui,
ja, genau! Mit VBA gehts ganz einfach:
If = then
Else If = then
End if
hoffe das hilft dir.
Gruß
Mareike
Ja, fast. Ich kenne mich mit VBA bloß nur sehr wenig aus.
Also wäre z.B.: [Kombinationsfeld0] und z.B.: [Müller], oder? Und wie gebe ich den Namen eines Makros an? Wenn jetzt das Makro z.B. ‚Makro1‘ heißt.
Hallo kinglui,
ja, genau! Mit VBA gehts ganz einfach:
If = then
Else If = then
End if
hoffe das hilft dir.
Gruß
MareikeJa, fast. Ich kenne mich mit VBA bloß nur sehr wenig aus.
Also wäre z.B.: [Kombinationsfeld0] und
Ja, genau. Du gibst dann an:
if Forms!!Kombinationsfeld0 = Müller then
DoCmd Open Makro1 (Wobei ich noch nie ein Makro aus VBA aufgerufen habe. Es kann sein, dass der Befehl hier anders lauten muss. Da aber bitte auf andere Antworten warten)
Endif
z.B.: [Müller], oder? Und wie gebe ich den Namen
eines Makros an? Wenn jetzt das Makro z.B. ‚Makro1‘ heißt.
Um auf meine Anmerkung zurückzukommen: Ist es dir möglich, das Makro wegzulassen, und den „Inhalt“ auch in VBA zu programmieren? So ist es nachher übersichtlicher. (
Ok, du hast recht. Warum nicht alles mit VBA machen
Ein kleine Frage hätte ich dann noch. Wäre nur schön wenn das auch gehen würde:
Ich lasse bei einer bestimmten Auswahl im Kombifeld folgenden Befehl ausführen:
DoCmd.OpenQuery „Top TCS KW12 Abfrage“, acNormal, acEdit
Nun hätte ich aber gerne, dass „Top TCS KW12 Abfrage“ durch die Auswahl im Kombifeld ersetzt wird. Das würde mir viel Arbeit erleichtern. Geht das?
Hier mal ein Beispiel wie ich es versucht habe, es aber natürlich nicht klappt:
DoCmd.OpenQuery „[Formulare]![Kalenderwoche Wahl]![Kombinationsfeld0]“, acNormal, acEdit
Danke schon mal für die bisherige Hilfe. Die hat mich schon ein großes Stück weiter gebracht!
Gruß, Kinglui
Hallo kinglui,
im Prinzip schon richtig:
Hier mal ein Beispiel wie ich es versucht habe, es aber
natürlich nicht klappt:DoCmd.OpenQuery „[Formulare]![Kalenderwoche
Wahl]![Kombinationsfeld0]“, acNormal, acEdit
Da das Kombinationsfeld0 aber schon im Formular enthalten ist, Du also kein anderes Formular ansprechen musst, reicht hier ein einfaches
DoCmd.OpenQuery Me!Kombinationsfeld0, acViewNormal, acEdit
und schon funzt´s
gruss
moritzbock
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Moin,
DoCmd.OpenQuery „Top TCS KW12 Abfrage“, acNormal, acEdit
In Benamungen für Berichte, Abfragen, Tabellen, Feldern und sämtlichen anderen irgendwie benambaren Sachen von Access sollten Leerzeichen, Bindestriche, Pluszeichen und wenn möglich Umlaute unbedingt vermieden werden. Ebenfalls tabu sind sogenannte reservierte Worte wie z.B. „Name“ oder „Formular“. Wenn du bei deiner Abfragebezeichnung irgendwann mal aus Versehen eine Klammer oder ein " vergisst, wird dir Access das Ganze mit Schmackes vor die Füße spucken.
Wenn das ganze dann für den Anwender unhandlich wird, weil der Name für o.g. Query nicht mehr „Top TCS KW12 Abfrage“ sondern z.B. qry_TOP_TCS_KW12 genannt wird, dann kann man ja eine 2. versteckte Spalte in das Kombinationsfeld aufnehmen und schreibt dort die richtigen Bezeichnungen rein.
also Kombobox mit 2 Spalten, gebundene Spalte 1, Breite 3cm;0cm
Datenquelle: „Top TCS KW12“;„qry_TOP_TCS_KW12“;„Top XYZ irgendwas“;„qry_andeereAbfrage“
Der Aufruf wäre dann Me!cbo_MeineCombobox.column(1).Value
Andererseits schlußfolgere ich aus dem Namen der Query, daß du für jede KW eine eigene Abfrage gebaut hast? Wenn ja, dann solltest du dir mal die Filterregeln für Berichte in der Hilfe anschauen. Es macht wenig Sinn, die Filterkriterien jeweils fest im Bericht/Abfrage zu verdraten, wenn man das ganz einfach über Paramteter beim Aufruf mit machen könnte.
docmd.OpenReport „Repname“,„KW = 12“
Wobei man die Filterregel auch zusammenbauen kann "KW = " & Me.txtKW
Damit brauchst du genau eine Abfrage und einen Bericht, egal welche KW du gern rauslassen möchtest.
Gruß
Daniel Scholdei