🙏 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. 🤗

Listenfeld in Formular mit Filter auf anderes Listenfeld

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Heli
Beiträge: 2
Registriert: Do 23. Aug 2012, 13:55

Listenfeld in Formular mit Filter auf anderes Listenfeld

Beitrag von Heli » Do 23. Aug 2012, 14:15

Hallo,

entschuldigt, falls die Lösung zu dieser Frage zu einfach ist, aber ich finde keine im Netz :)

Die Tabellen:
Auftrag (Tabelle "Auftrag" mit AuftragID, ... , IDCat)
Jeder Auftraggeber darf nur bestimmte Kategorien von Aufträgen auslösen (Tabelle "AuftragKategorien" mit CatID, Cat, ..., IDClient)
Auftraggeber (Tabelle "Auftraggeber" mit ClientID, ClientName, ...)


Jetzt habe ich ein Eingabe Formular für Aufträge in der ich mittels etlichen Feldern die Tabelle "Auftrag" befülle.
Feld1 Beauftragungszeitpunkt
Feld2 ...
Feld3 ...
Feld4 Auftraggeber (Listenfeld)
Feld5 Auftragskategorie (Listenfeld)
Feld6 ...
Feld7 ...

So nund die einfache Frage:
Wie schaffe ich es, dass im Listenfeld Auftragskategorie nur die Elemente aufgezeigt werden für die der Auftraggeber, der im Feld4 definiert wurde, berechtigt ist.

z.B.
Feld4 Auftraggeber 0 der darf nur Auftragskategorie 0,3,6 beauftragen
Feld5 soll mir im Listenfeld nur 0,3,6 zeigen.

Danke Euch.

Liebe Grüße
Heli

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Listenfeld in Formular mit Filter auf anderes Listenfeld

Beitrag von RobertG » Do 23. Aug 2012, 16:37

Hallo Heli,

da gibt es sicher verschiedene Lösungsansätze.
Schau Dir vielleicht diesen Thread einmal an:
http://de.openoffice.info/viewtopic.php ... 13#p202356
Du wirst an Makros nicht vorbei kommen, da das Listenfeld immer wieder neu geladen werden muss.

Sieh' Dir einfach einmal den Thread an und melde Dich dann wieder.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

Heli
Beiträge: 2
Registriert: Do 23. Aug 2012, 13:55

Re: Listenfeld in Formular mit Filter auf anderes Listenfeld

Beitrag von Heli » Do 23. Aug 2012, 17:34

Hallo Robert,

vielen Dank für den Link!

Ich habe das Makro darin noch ergänzt, da mein Formular aus Subformularen besteht (einfach.getByName("Subform") dazugehängt.
Und es hat etwas gedauert bis ich die SQL Anweisung richtig zusammengebracht habe :)

Code: Alles auswählen

Sub AuswahlArtikelRelativZuArtikelgruppe

	Dim sSql(0) as String

	oDoc = ThisComponent
	oForm = oDoc.Drawpage.Forms.getByName("FormArtikel").getByName("SubForm")
	oAuswahlGruppe = oForm.getByName("AuswahlArtikelgruppe")
	sGruppe = oAuswahlGruppe.CurrentValue
	
	oAuswahlArtikel = oForm.getByName("AuswahlArtikel")
	
	sSql(0) = "SELECT ""tblArtikel"".""fldArtikelbez"", ""tblArtikel"".""fldArtikelNr"", ""tblArtikelgruppe"".""fldArtikelgruppe""" &_
	"FROM ""tblArtikel"", ""tblArtikelgruppe"" WHERE ""tblArtikel"".""fldArtikelgruppeNr"" = ""tblArtikelgruppe"".""fldArtikelgruppeNr""" &_
	 "And ""tblArtikelgruppe"".""fldArtikelgruppe"" Like '%" & sGruppe & "%'"
		
	oAuswahlArtikel.ListSource() = sSql()
	oAuswahlArtikel.refresh()

End Sub
Danke vielmals noch einmal!

Problem hiermit gelöst ... mein Gott ich hätte mich schon früher hier anmelden sollen :)

Liebe Grüße
Heli


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