Re: Datensatz suchen über Kombinations- bzw. Listenfeld
Verfasst: Fr, 25.11.2011 19:27
Noch ein Code der das gleiche macht aber das Event der Listbox verwendet und damit selber die Tabelle und und das zu filternde Feld erkennt. Sie müss also nicht jedes mal angepasst werden und das Makro kann in mehreren Formularen verwendet werden.
Wobei die Liste im Beispiel als Datenfeld die Bezeichnung verwendet besser wäre das ID Schlüsselfeld zu verwenden.
Ich habe noch ein bisschen ausprobiert:
1. eine Tabelle Bundesländer eingefügt die über ein ID_Bundesland in der Tabelle Bezeichnung verbunden ist.
2. eine Liste mit einer SQL GOUP BY Anweisung um nur die Bundesländer die verwendet worden sind und dise auch nur einmal anzuzeigen.
3. Die liste ruft nach dem wechseln das obrige Makro auf zeigt dann aber natürlich nur die Zeilen die auch in ID_Bundesland der Tabelle Bezeichnung einen Eintrag haben.
Ich verwende LibreOffice 3.4.4 mit W7
Code: Alles auswählen
Sub SelectListbox2(oEvent)
Dim oModelo, oForm
Dim sCampo$, iItemSeleccionado%, sValorSelecc$, sFiltro$
oModelo = oEvent.Source.Model
sCampo = oModelo.DataField
iItemSeleccionado = oModelo.SelectedItems(0)
sValorSelecc = oModelo.ValueItemList(iItemSeleccionado)
'msgbox sValorSelecc
oForm = oModelo.Parent
sFiltro = """" + sCampo + """='" + sValorSelecc + "'"
oForm.updateRow()
oForm.Filter = sFiltro
oForm.ApplyFilter = True
oForm.reload()
End Sub
Ich habe noch ein bisschen ausprobiert:
1. eine Tabelle Bundesländer eingefügt die über ein ID_Bundesland in der Tabelle Bezeichnung verbunden ist.
2. eine Liste mit einer SQL GOUP BY Anweisung um nur die Bundesländer die verwendet worden sind und dise auch nur einmal anzuzeigen.
3. Die liste ruft nach dem wechseln das obrige Makro auf zeigt dann aber natürlich nur die Zeilen die auch in ID_Bundesland der Tabelle Bezeichnung einen Eintrag haben.
Ich verwende LibreOffice 3.4.4 mit W7