🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Textfeld bei gleichen SQL Werten in Abhängigkeit von Dropdown-Feldern füllen

Alles zur Programmierung im LibreOffice.
Antworten
Kenji
Beiträge: 16
Registriert: So 29. Nov 2015, 12:03

Textfeld bei gleichen SQL Werten in Abhängigkeit von Dropdown-Feldern füllen

Beitrag von Kenji » Fr 18. Dez 2015, 08:55

Guten Morgen zusammen,

da die Überschrift wohl eher wenig aussagt erläutere ich mal mein Problem auch anhand eines Screenshots:
Unbenannt.JPG
Unbenannt.JPG (13.84 KiB) 2722 mal betrachtet
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

Code: Alles auswählen

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

Code: Alles auswählen

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

Code: Alles auswählen

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

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Textfeld bei gleichen SQL Werten in Abhängigkeit von Dropdown-Feldern füllen

Beitrag von gogo » Fr 18. Dez 2015, 09:45

Weiss nicht, ob ich's verstanden habe aber wie wär's mit:

Code: Alles auswählen

Produktergebnis = SQL_Anweisung.executeQuery("SELECT ""produkt"" || ' - ' || ""kunde"" FROM ""kunden"" WHERE ""stadt""=" & gewaehltestadt(i) & "")
edit: FROM ""kunden"" statt FROM ""produkte""
Zuletzt geändert von gogo am Sa 19. Dez 2015, 03:06, insgesamt 2-mal geändert.
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Kenji
Beiträge: 16
Registriert: So 29. Nov 2015, 12:03

Re: Textfeld bei gleichen SQL Werten in Abhängigkeit von Dropdown-Feldern füllen

Beitrag von Kenji » Fr 18. Dez 2015, 11:13

Hallo gogo,

ich muss ehrlich gestehen, dass ich keine Ahnung habe, was dein Codeschnippsel bewirken soll?

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Textfeld bei gleichen SQL Werten in Abhängigkeit von Dropdown-Feldern füllen

Beitrag von F3K Total » Fr 18. Dez 2015, 15:13

Hallo,
was willst Du mit dem Inhalt des Textfeldes anfangen?
Wenn ich dich richtig verstanden habe, möchtest du anhand der Stadt die Kunden und dann deren Produkte finden.
Anbei mal ein Beispiel ohne Makro, Dialog und ohne Listenfeld

Gruß R
Dateianhänge
Kunde_Produkte_Stadt.zip
nur entpacken
(18.05 KiB) 144-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Textfeld bei gleichen SQL Werten in Abhängigkeit von Dropdown-Feldern füllen

Beitrag von gogo » Sa 19. Dez 2015, 03:05

...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?...
Habe ich so gedeutet: ich möchte alle Kunden in der Stadt x sehen, die das Produkt y herstellen.
Dazu brauchst Du kein Base, Du hast ja eigentlich nur eine Tabelle ("Kunden"), denn:

Code: Alles auswählen

"SELECT ""kunde"" FROM ""kunden"" WHERE ""stadt""=" & gewaehltestadt(i) & " AND ""produkt""='" & gewaehltesprodukt(i) & "'"
beteutet, dass es zumindest 3 Spalten in dieser Tabelle gibt: kunde, stadt und produkt.
Kopier' diese Tabelle in ein Calc-file, setz' einen Autofilter und Du kannst loslegen.

... und das Codeschnipsel ist genau das das Du gepostet hast, nur etwas verändert:

Code: Alles auswählen

"SELECT ""produkt"" FROM ""produkte""
wurde zu

Code: Alles auswählen

"SELECT ""produkt"" || ' - ' || ""kunde"" FROM ""kunden"" 
und füllt einfach das Listenfeld mit einer String-Kombination aus "Produkt" und " - " und "Kundenname".
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

Kenji
Beiträge: 16
Registriert: So 29. Nov 2015, 12:03

Re: Textfeld bei gleichen SQL Werten in Abhängigkeit von Dropdown-Feldern füllen

Beitrag von Kenji » Di 22. Dez 2015, 08:58

Hallo zusammen,

Thema ist erledigt. Habs durch ein weiteres Dropdown gelöst. Danke an alle für die Hilfestellungen.


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten