Neuigkeiten:

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

Mobiles Hauptmenü

Dropdowns, die nebenbei den Wert eines andere Dropdown ändern

Begonnen von Carl, September 14, 2018, 12:00:28

⏪ vorheriges - nächstes ⏩

Carl

Ich habe ein Formular mit zwei Listenfelder, [Krankenstand] und [Arbeitsbereich]. Krankenstand gibt zum Beispiel (anwesend, mutterurlaub, arbeitsunfähig vor). Arbeitsbereich bezeichnet eine Abteilung.

Nun möchte ich, dass, wenn im Feld [Krankenstand] der Wert "arbeitsunfähig" ausgewählt wird, automatisch im Feld [Arbeitsbereich] der Standardwert 1 erscheint, der für "kein Bereich gewählt" steht.

Es soll auch anders herum so sein, dass wenn ich einen Arbeitsbereich wähle, dann automatisch im Feld Krankenstand der Wert "anwesend" erscheint.

Welche Vorgehensweise würdet Ihr wählen? Welche möglichst formularbasierte Lösung kann empfohlen werden? Gebt mir bitte mal einen Tipp für eine einfache Funktion.

Carl

Beaker s.a.

Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes 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)

Carl

Danke, Ekkehard, aber das meinte ich nicht.

Wenn der User in dem Dropdownfeld [Krankenstand] den Wert "arbeitsunfähig" ausgewählt, soll automatisch im Dropdownfeld [Arbeitsbereich] der Standardwert 1 "kein Bereich" stehen. Damit der Datensatz in keinem Arbeitsbereich als verfügbar angezeigt wird.

Damit möchte ich verhindern, dass ein MA einerseits als krank, andererseits als in einem Bereich erwartet angezeigt wird.

Also ein konkreter Wert in einem Feld soll ein anderes Feld auf einen konkreten Wert setzen. Wenn es geht mit mehreren Fällen, z.B. 4 erzeugt 1; 3 erzeugt 2 usw..

Wie heißt denn die Funktion, die sowas kann?

Carl

DF6GL

Hallo,

ohne am Konzept herumzumeckern:

Sub Krankenstand_Afterupdate()
If Me!Krankenstand="arbeitsunfähig" then Me!Arbeitsbereich="Kein Bereich"
End Sub

Lachtaube

#4
Von der Beschreibung her sollten die Nach Aktualisierung Ereignisse beider Listenfelder für eine Umsetzung nach diesem Muster geeignet sein.Private Sub EinListenfeld_AfterUpdate()
   With Me.EinAnderesListenfeld
      Select Case Me.EinListenfeld.Value
         Case 4: .Value = 1
         Case 3: .Value = 2
         'usw.
      End Select
   End With
End Sub
Grüße von der (⌒▽⌒)

Carl

Wunderbar, ich habs hinbekommen.

Mal noch eine Frage, kann man die with's so hintereinander schachteln? Ich meine es funktioniert, aber ist es so auch korrekt?


Private Sub MoTP_AfterUpdate()
   With Me.Kombinationsfeld163
      Select Case Me.MoTP.Value
         Case Is > 1: .Value = 1
         'Case 3: .Value = 2
         'usw.
      End Select
   End With
'hier gleich das nächste with für ein drittes Feld
   With Me.Kombinationsfeld212
      Select Case Me.MoTP.Value
         Case Is > 1: .Value = 1
         'Case 3: .Value = 2
         'usw.
      End Select
   End With
End Sub

Beaker s.a.

Hallo Carl,
Ist schon richtig so.
Ohne With kannst du aber beide Kombifelder pro Case aktualisieren
Select Case Me.MoTP.Value
         Case Is > 1
             Me.Kombinationsfeld163.Value = 1
             Me.Kombinationsfeld212.Value = 1
         Case 3
             Me.Kombinationsfeld163.Value = 2
             Me.Kombinationsfeld212.Value = 2
         'usw.
      End Select

Mit Case > 1 kommst du allerdings nie zu Case 3.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes 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)