Januar 19, 2021, 05:23:37

Neuigkeiten:

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


Einfache Listenauswahl innerhalb VBA Macro

Begonnen von Powermac, November 28, 2020, 18:24:35

⏪ vorheriges - nächstes ⏩

Powermac

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!  :)

steffen0815

November 28, 2020, 18:34:19 #1 Letzte Bearbeitung: November 28, 2020, 18:39:03 von steffen0815
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.

Gruß Steffen

ebs17

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.
Mit freundlichem Glück Auf!

Eberhard

Powermac

November 28, 2020, 19:01:51 #3 Letzte Bearbeitung: November 28, 2020, 19:10:14 von MzKlMu
@steffen0815
Danke, das probiere ich mal aus!
@ebs17
Was meinst du genau damit?

Moderatorenanmerkung:
Bitte keine vollständigen Beiträge zitieren. MzKlMu

ebs17

November 28, 2020, 23:56:45 #4 Letzte Bearbeitung: November 29, 2020, 00:24:44 von ebs17
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.
Mit freundlichem Glück Auf!

Eberhard