Datensatz suchen über Kombinations- bzw. Listenfeld

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Benutzer 32208 gelöscht

Re: Datensatz suchen über Kombinations- bzw. Listenfeld

Beitrag von Benutzer 32208 gelöscht »

Hallo Leute,

Ich habe eure Diskussion hier sehr aufmerksam gelesen, und sie hat mir auch wirklich geholfen ein sehr ähnliches Problem im Grunde zu lösen. Allerdings verhält es sich bei mir noch ein wenig komplizierter. Ich habe euch unten mal meine Formular Übersicht angefügt.
Eine kurze Erklärung: Das Primäre Ziel des Formulars ist es Teilnehmer für zu einer Schulung (Schulungs ID + Datum) einzugeben. Schulungs ID ist ein Listenfeld, welches wenn aktualisiert die entsprechenden Informationen im Subformular Infoschulung auswerfen soll. Diese Infos sollen nicht verändert werden. Die Primäre Dateneingabe erfolgt über die Auswahl einer SChulungs ID und der Eingabe eines Datums. Diese werden in die Tabelle(Schulungsvorgang) eingespeist. Die Teilnehmer werden dann eingegeben und in einer Tabelle(Mischu) mit dem PrimaryKey der Tabelle Schulungsvorgang als Foreign key gespeichert.

Mein Problem ist nun, dass mit dem Makro welches auf das Feld SchulungsID angewendet wird, alle Felder aktualisieren. Mein Plan ist es aber, dass sich nur die Die Infofelder aus dem Subformular Infoschulung Aktualisieren welches seine Daten aus der Tabelle Schulungen bezieht.

Ist mein Problem soweit verständlich?

Vielen Dank Für eure Hilfe und eine Frohe Weihnachtszeit!!!!


Infos: XP, OOo3.2.1 mit allen benötigten teilen + JRE installiert.

Macro code:

Code: Alles auswählen

Sub SelectListbox
Dim oForm, oListbox As Object
Dim LB_Item as integer
	oForm = ThisComponent.drawpage.forms.getbyindex(0)	
	oListbox = oForm.getByName("Listenfeld 1")
	LB_Item = oListbox.SelectedItems(0)	
	oform.absolute (LB_Item+1)
End Sub
Dateianhänge
Formularübersicht.
Formularübersicht.
Übersicht Formular.JPG (22.57 KiB) 3289 mal betrachtet
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