Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Powermac am November 28, 2020, 18:24:35

Titel: Einfache Listenauswahl innerhalb VBA Macro
Beitrag von: Powermac am November 28, 2020, 18:24:35
Hallo zusammen,

kann mir jemand weiterhelfen und sagen, wie ich es hinbekomme, dass innerhalb eines VBA Macros in Access ein einfaches Auswahl Pop Up Fenster geöffnet wird, in dem der User eine Option aus einer Liste auswählen kann und mit dessen Auswahlergebnis das Macro dann weiterarbeitet? Die möglichen Auswahloptionen sollten aus dem Macro kommen (z.B. String Array).

Ich bin schon eine Weile am suchen aber scheinbar suche ich einfach falsch...

Danke und beste Grüße!  :)
Titel: Re: Einfache Listenauswahl innerhalb VBA Macro
Beitrag von: steffen0815 am November 28, 2020, 18:34:19
Hallo,
ich gehe mal davon aus wir reden von einer VBA-Prozedur und nicht von einem Makro ....

Du brauchst ein PopUp-Formular mit einem Listenfeld.
Das Listenfeld kann man mit einem durch Semikolon getrennten String befüllen.

Die Übergabe dieses Strings kann beim Formular öffnen
Zitat von: OnlinehilfeDocmd.OpenForm(FormName, View, FilterName, WhereCondition, DataMode, WindowMode, OpenArgs)
per "OpenArgs" oder per direktem Verweis nach dem Öffnen übergeben werden.

Das Popup selbst wird nach Auswahl unsichtbar geschalten und die Prozedur kann den gewählten Wert auslesen und das Formular schließen.

Titel: Re: Einfache Listenauswahl innerhalb VBA Macro
Beitrag von: ebs17 am November 28, 2020, 18:48:25
ZitatIch bin schon eine Weile am suchen
Schon der formulierte Ablauf beinhaltet eine derartige Umständlichkeit, dass es unwahrscheinlich ist, dass das jemand vorgemacht hat.
Titel: Re: Einfache Listenauswahl innerhalb VBA Macro
Beitrag von: Powermac am November 28, 2020, 19:01:51
@steffen0815
Danke, das probiere ich mal aus!
@ebs17
Was meinst du genau damit?

Moderatorenanmerkung:
Bitte keine vollständigen Beiträge zitieren. MzKlMu
Titel: Re: Einfache Listenauswahl innerhalb VBA Macro
Beitrag von: ebs17 am November 28, 2020, 23:56:45
Ich würde wohl nie innerhalb einer Prozedur diese unterbrechen, dabei den User überraschen und auf Usereingaben warten. Die Ausnahme wäre eine MsgBox für nötige Informationen (Aktionsabfrage abgeschlossen) oder für nötige Fallunterscheidungen.

In meiner Vorstellung sollte sich der User einige Sekundenbruchteile vorher, also vor Start der Prozedur, über seine Auswahl im Klaren sein, die man ihm auch so präsentiert.
Also würde ich ihm zuerst das Listenfeld präsentieren, das vorher passend mit Daten bestückt ist. Dann darf er den Fortgang mit Abschluss der Auswahl starten.

Der obige eine Vorgang wird also in drei Vorgänge geteilt:
Bereitstellung Auswahl, ggf. per VBA / Useraktion / Auswertung Auswahl, ggf. VBA
Damit hat man keine fortlaufenden Abhängigkeiten, einen viel einfacheren Aufbau und weniger Fehleranfälligkeit.
Ich halte es auch für deutlich benutzerfreundlicher, wenn der User erst seine vollständig Auswahl trifft und danach startet und das Ergebnis erhält, statt dass er startet und mit Rückfragen genervt wird.