Seite 1 von 1

Listenfeld in Formular mit Filter auf anderes Listenfeld

Verfasst: Do 23. Aug 2012, 14:15
von Heli
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

Re: Listenfeld in Formular mit Filter auf anderes Listenfeld

Verfasst: Do 23. Aug 2012, 16:37
von RobertG
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

Re: Listenfeld in Formular mit Filter auf anderes Listenfeld

Verfasst: Do 23. Aug 2012, 17:34
von Heli
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