Textfeld anhand von 2 Listboxen füllen [Geschlossen]

gefragt 2015-12-18 09:08:50 +0200

Kenji Gravatar-Bild

Guten Morgen zusammen,

da die Überschrift wohl eher wenig aussagt erläutere ich mal mein Problem auch anhand eines Screenshots: Beispiel

Ich habe 2 Dropdown-Felder (Listboxen) in meinem Dialog. Dropdown1 wird durch eine SQL Abfrage beim Start des Dialoges gefüllt. Das funktioniert reibungslos. Sobald ich in Dropdown1 einen Wert auswähle (jeden Wert gibt es nur einmal) füllt sich anhand einer SQL Abfrage im Makro das Dropdown2. Je nachdem welchen Wert ich in Dropdown1 auswähle kann es sein, dass die Werte in Dropdown2 mehrfach vorkommen.

Das Textfeld1 wird in meinem Makro erst dann gefüllt, wenn sowohl in Dropdown1, als auch in Dropdown2 ein Wert ausgewählt ist. Bis hierhin klappt alles super. Nun komme ich nach viel Erläuterung zu meinem eigentlichen Problem. Beispiel (nicht auf Sinnigkeit achten ;)): - Dropdown1 sind Städte hinterlegt - In Dropdown2 erscheinen die dazugehörigen Produke - In Textfeld1 erscheint dann der Kunde, welcher per SQL Abfrage der Kundennummer und des Produktes zu finden ist

Nun kommt es vor das es in Stadt "Hamburg" mehrere Kunden gibt, die dasselbe Produkt herstellen. Ich wähle also in Dropdown1 Hamburg aus und in Dropdown2 erscheint 3mal Milch, weil 3 Kunden Milch herstellen. Egal welchen "Milchwert" ich nun auswähle, ich erhalte im Textfeld1 immer den ersten Kunden, den die SQL Abfrage findet.

Wie kann ich nun die Abfrage so bauen, dass mir bei jedem Wert der entsprechende Kunde angezeigt wird ohne, dass ich die Werte in Dropdown2 in Milch_1, Milch_2 und Milch_3 umbennen muss? Mein bisheriger SQL Code für die Abfrage schaut so aus:

  • Stadtdropdown

    Stadtergebnis = SQL_Anweisung.executeQuery("SELECT ""stadt"" FROM ""staedte""") Do While Stadtergebnis .next LBItem = Stadtergebnis .getString(1) Dialog.GetControl("LB1").addItem(LBItem, Dialog.GetControl("LB1").ItemCount) Loop
    
  • Produktedropdown

    Produktergebnis = SQL_Anweisung.executeQuery("SELECT ""produkt"" FROM ""produkte"" WHERE ""stadt""=" & gewaehltestadt(i) & "") Dialog.GetControl("LB2").removeItems(0, Dialog.GetControl("LB2").getItemCount()) Do While Produktergebnis.next LBItem2= Produktergebnis.getString(1) Dialog.GetControl("LB2").addItem(LBItem2, Dialog.GetControl("LB2").ItemCount() Loop
    
  • Kundetextfeld

    Kundeergebnis = SQL_Anweisung.executeQuery("SELECT ""kunde"" FROM ""kunden"" WHERE ""stadt""=" & gewaehltestadt(i) & " AND ""produkt""='" & gewaehltesprodukt(i) & "'") Do While Kundeergebnis.next Dialog.GetControl("Kunde").text = Kundeergebnis.getString(1) Loop
    

So nun hoffe ich, dass mir jemand bei meinem Problem weiterhelfen kann.

Viele Grüße

Kenji

Bearbeiten Tags ändern Melden wieder öffnen vereinen löschen

Geschlossen aus folgendem Grund Die Frage ist nicht bedeutend oder inzwischen veraltet von Kenji
Abschlussdatum 2015-12-22 09:04:48.126266