Datensatz suchen über Kombinations- bzw. Listenfeld

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

vueloman
*
Beiträge: 15
Registriert: Sa, 10.11.2007 09:14

Re: Datensatz suchen über Kombinations- bzw. Listenfeld

Beitrag von vueloman »

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.

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
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
Noebian
****
Beiträge: 158
Registriert: Sa, 03.10.2009 18:00

Re: Datensatz suchen über Kombinations- bzw. Listenfeld

Beitrag von Noebian »

Deutlich einfacher und ohne Makro funtkioniert es, wenn man ein Tabellen-Kontrollfeld ins Formular einbindet, das die gewünschten Felder (zb Name und Vorname) anzeigt, während der Rest des Formulars die Details des selektierten Datensatzes anzeigt. Ich komme auch von Access her - und bin am lernen, dass Base eben nicht Access ist und man andere Wege gehen kann und muss. Mittlerweile gefällt mir diese Lösung besser als die Combobox.
Xubuntu 12.04 / AOO 4.0 / MySQL 5.2.40

herzliche Grüße aus Deutschlands Norden
Antworten