Datensatz suchen über Kombinations- bzw. Listenfeld
Moderator: Moderatoren
Datensatz suchen über Kombinations- bzw. Listenfeld
Hallo zusammen,
ich würde gerne wissen, wie ich einen Datensatz über ein Listen- bzw. Kombinationsfeld im gleichen Formular anzeigen lassen kann.
Wenn ich in Access ein solches Feld erstellt habe, kam immer die Frage, ob ich dieses Kombinationsfeld dazu benutzen möchte um einen bestimmten Datensatz im Formular zu suchen und anzeigen zu lassen. Wie aber geht das in Base? Gibt es hierfür ein Macro? Wenn ja, wie muss dieses Macro aussehen?
Vielen Dank schon mal für die Antwort
Alise
ich würde gerne wissen, wie ich einen Datensatz über ein Listen- bzw. Kombinationsfeld im gleichen Formular anzeigen lassen kann.
Wenn ich in Access ein solches Feld erstellt habe, kam immer die Frage, ob ich dieses Kombinationsfeld dazu benutzen möchte um einen bestimmten Datensatz im Formular zu suchen und anzeigen zu lassen. Wie aber geht das in Base? Gibt es hierfür ein Macro? Wenn ja, wie muss dieses Macro aussehen?
Vielen Dank schon mal für die Antwort
Alise
Re: Datensatz suchen über Kombinations- bzw. Listenfeld
Hallo Alise,
du möchtest also bspw. mittels einer Listbox einen Datensatz selektieren?
Nunja, ich bin ebenfalls Umsteiger und bin somit auch Base-Anfänger.
Durch SuFu habe ich jedoch herausgefunden, dass das in Base nur umständlich und kompliziert über zu programmierende Makros geht...
Auch ich stehe nämlich noch vor dem gleichen Problem.
Möge es einen einfacheren Weg, als (nötig komplizierte Makros geben, wird uns sicherlich jemand von hier eines besseren belehren.
Viel Erfolg noch.
du möchtest also bspw. mittels einer Listbox einen Datensatz selektieren?
Nunja, ich bin ebenfalls Umsteiger und bin somit auch Base-Anfänger.
Durch SuFu habe ich jedoch herausgefunden, dass das in Base nur umständlich und kompliziert über zu programmierende Makros geht...
Auch ich stehe nämlich noch vor dem gleichen Problem.
Möge es einen einfacheren Weg, als (nötig komplizierte Makros geben, wird uns sicherlich jemand von hier eines besseren belehren.
Viel Erfolg noch.
Systeminfos:
OOo 3.2.0, HSQL, Windows 7 (32bit)
OOo 3.2.0, HSQL, Windows 7 (32bit)
Re: Datensatz suchen über Kombinations- bzw. Listenfeld
Hallo hobby,
du hast das Problem erfasst. Schade irgendwie hat wohl keiner eine Lösung.
Wäre so praktisch und in Access so einfach. Na ja, vielleicht klappt`s ja noch.
Wenn nicht, muss man halt die Suchfunktion hernehmen.
Danke für deine Antwort.
Dir auch noch viel Erfolg beim Umstieg.
Bis dann
du hast das Problem erfasst. Schade irgendwie hat wohl keiner eine Lösung.
Wäre so praktisch und in Access so einfach. Na ja, vielleicht klappt`s ja noch.
Wenn nicht, muss man halt die Suchfunktion hernehmen.
Danke für deine Antwort.
Dir auch noch viel Erfolg beim Umstieg.
Bis dann
Re: Datensatz suchen über Kombinations- bzw. Listenfeld
Hallo Zusammen,
stelle ich das "umständlich und kompliziert" mal in Frage.
Hier noch ein Beispiel dazu. Viel Erfolg.
Jürgen
Nuja, wenn das folgende kleine Makro mit dem Ereignis "Status geändert" der Listbox verbunden ist:hobby hat geschrieben:dass das in Base nur umständlich und kompliziert über zu programmierende Makros geht...
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("ListBox1")
LB_Item = oListbox.SelectedItems(0)
oform.absolute (LB_Item)
End Sub

Hier noch ein Beispiel dazu. Viel Erfolg.
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Datensatz suchen über Kombinations- bzw. Listenfeld
Hallo Jürgen,
hab viiiiiiielen herzlichen Dank. Funktioniert (fast) hervorragend.
Das fast bezieht sich auf eine Kleinigkeit. Wieso zeigt er mir im Formular nicht den angeklickten Datensatz an, sondern den, der eins weiter vorne ist?
Z.B. klicke ich Breumeier (Datensatz 7) an, es kommt aber Bernsteiner (Datensatz 6), der Datensatz eben, der vor Breumeier ist.
Kann man das noch hinkriegen oder muss man eben damit leben?
Lieben Gruß
Alois
hab viiiiiiielen herzlichen Dank. Funktioniert (fast) hervorragend.
Das fast bezieht sich auf eine Kleinigkeit. Wieso zeigt er mir im Formular nicht den angeklickten Datensatz an, sondern den, der eins weiter vorne ist?
Z.B. klicke ich Breumeier (Datensatz 7) an, es kommt aber Bernsteiner (Datensatz 6), der Datensatz eben, der vor Breumeier ist.
Kann man das noch hinkriegen oder muss man eben damit leben?
Lieben Gruß
Alois
Re: Datensatz suchen über Kombinations- bzw. Listenfeld
Hi Alois,
Habe die auf meinem Sytem angemeldete Datenbank abgemeldet, OO.o inkl. Schnellstarter beendet. Die Datei selber nochmal runtergeladen und in einem anderen Ordner gespeichert.
Dann diese angemeldet und getestet > Auswahl und Anzeige stimmen über ein.
Vielleicht etwas besser zielen mit der Maus?
Kann Dir sonst leider nicht sagen wo das Problem ist.
Sonst mal folgende Codezeile ersetzen:
Jürgen
Hmm, kann ich nicht nachvollziehen.Alise hat geschrieben:Wieso zeigt er mir im Formular nicht den angeklickten Datensatz an, sondern den, der eins weiter vorne ist?
Habe die auf meinem Sytem angemeldete Datenbank abgemeldet, OO.o inkl. Schnellstarter beendet. Die Datei selber nochmal runtergeladen und in einem anderen Ordner gespeichert.
Dann diese angemeldet und getestet > Auswahl und Anzeige stimmen über ein.
Vielleicht etwas besser zielen mit der Maus?

Kann Dir sonst leider nicht sagen wo das Problem ist.
Sonst mal folgende Codezeile ersetzen:
Code: Alles auswählen
oform.absolute (LB_Item +1)
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Datensatz suchen über Kombinations- bzw. Listenfeld
Hallo Jürgen, vielen Dank für die schnelle Antwort.
Werde das, was du mir rätst mal ausprobieren.
Bin ja schon zufrieden wie es momentan läuft und hab mich riesig darüber gefreut, dass es so gut funktioniert.
Noch eine schöne Zeit.
Gruß
Alois
Werde das, was du mir rätst mal ausprobieren.
Bin ja schon zufrieden wie es momentan läuft und hab mich riesig darüber gefreut, dass es so gut funktioniert.

Noch eine schöne Zeit.
Gruß
Alois
Re: Datensatz suchen über Kombinations- bzw. Listenfeld
Hallo Alois & Jürgen!turtle47 hat geschrieben:[...]stelle ich das "umständlich und kompliziert" mal in Frage.![]()
Vielen Dank Jürgen, in diesem Falle nehme ich alles zurück!
Danke nochmals! Ich frage mich nur, warum die Resonanz so gering ist (vgl. auch mein erstelltes Thema mit dem gleichen Problem), wobei es doch so ein kleines Makro ist und darüberhinaus auch noch so (wie ich finde) essentiell!!!?
Bist du dir sicher, Alois, dass dieses in Jürgens angehängter DB passiert und nicht nur in deiner?Alise hat geschrieben: Wieso zeigt er mir im Formular nicht den angeklickten Datensatz an, sondern den, der eins weiter vorne ist?
Der Grund ist nämlih, dass Jürgen´s erster ID-Eintrag mit Nr. 1 beginnt (vermutlich da kein Auto-Wert). In deiner, wie auch meiner, DB haben wir bei ID Auto-Wert und dieser beginnt mit 0 (und nicht wie bei Jürgen mit 1) und somit ist die ID-Nr. aus der Tabelle nicht identisch mit der Nr. der Reihenfolge in der Listbox.
Daher ist die von Jürgen hinzugefügte Ergänzung notwendig:
Code: Alles auswählen
oform.absolute (LB_Item +1)
Eine Kleinigkeit noch: Bei deiner DB bleibt der Eintrag in der Listbox nach Auswahl noch ordentlich markiert; bei mir nicht. Hast du (oder jemand anderes) vielleicht eine Idee, warum???
Nochmals herzlichen Dank und beste Grüße!

Manuel
Systeminfos:
OOo 3.2.0, HSQL, Windows 7 (32bit)
OOo 3.2.0, HSQL, Windows 7 (32bit)
Re: Datensatz suchen über Kombinations- bzw. Listenfeld
Hallo Alise,
sollte der falsche Datensatz angezeigt werden, so hast du vielleicht den Listeninhalt sortiert.
Amateurhaft ausgedrückt: Wenn Liste und Tabelle eine andere Sorierung haben passen die Zeilen nicht übereinander.
Gruß
ddraht
sollte der falsche Datensatz angezeigt werden, so hast du vielleicht den Listeninhalt sortiert.
Amateurhaft ausgedrückt: Wenn Liste und Tabelle eine andere Sorierung haben passen die Zeilen nicht übereinander.

Gruß
ddraht
MySQL 5.5.9
Oo 3.3.0, Build 9567
Mac os x 10.7.2
Oo 3.3.0, Build 9567
Mac os x 10.7.2
Re: Datensatz suchen über Kombinations- bzw. Listenfeld
Hallo zusammen,
also bei mir waren zunächst die Datensätze in der Listbox nicht sortiert und es wurde trotzdem der nächste angezeigt. Die ID ist bei mir tatsächlich ein Autowert. Was Jürgen geschrieben hat, dass er die Datei nochmals entfernt, einen anderen Ordner angelegt und von dort wieder gestartet hat, habe ich noch nicht ausprobiert. Allerdings habe ich dann die Listbox einmal anders sortiert und was soll ich sagen, da hat dann gar nix mehr funktioniert. Jürgens Vorschlag bezgl. entfernen und neu installieren werde ich also noch ausprobieren, sodass auch wirklich der angezeigte Datensatz angezeigt wird.
Warum bei dir, Manuel die Anzeige weg ist, kann ich leider nicht nachvollziehen.
Habt alle zusammen vielen herzlichen Dank, dass ihr auf meine Frage geantwortet habt.
Viele Grüße
Alois
also bei mir waren zunächst die Datensätze in der Listbox nicht sortiert und es wurde trotzdem der nächste angezeigt. Die ID ist bei mir tatsächlich ein Autowert. Was Jürgen geschrieben hat, dass er die Datei nochmals entfernt, einen anderen Ordner angelegt und von dort wieder gestartet hat, habe ich noch nicht ausprobiert. Allerdings habe ich dann die Listbox einmal anders sortiert und was soll ich sagen, da hat dann gar nix mehr funktioniert. Jürgens Vorschlag bezgl. entfernen und neu installieren werde ich also noch ausprobieren, sodass auch wirklich der angezeigte Datensatz angezeigt wird.
Warum bei dir, Manuel die Anzeige weg ist, kann ich leider nicht nachvollziehen.

Habt alle zusammen vielen herzlichen Dank, dass ihr auf meine Frage geantwortet habt.
Viele Grüße
Alois
Re: Datensatz suchen über Kombinations- bzw. Listenfeld
hm, bei mir funktioniert das nicht ... ich habe ein tabellenkontrollfeld in dem die ausgabe erfolgt und einee combobox in der die Namen nach denen gefiltert werden soll aufgelistet werden. wenn ich nun einen Namen auswähle, passiert nichts, es werden immernoch alle datensätze angezeigt.
mein basic-code:
ich habe mal, um zu sehen, was er aus der combobox holt, ein popup eingebaut, aber darin steht immer "0", egal welchen namen ich wähle.
hat wer nen tipp ?
danke !
mein basic-code:
Code: Alles auswählen
Sub SelectCombobox
Dim oForm, oCombobox As Object
Dim LB_Item as integer
oForm = ThisComponent.drawpage.forms.getbyindex(0)
oCombobox = oForm.getByName("Combobox1")
LB_Item = oCombobox.Text
msgbox(LB_Item)
oform.absolute (LB_Item)
End Sub
hat wer nen tipp ?
danke !
Re: Datensatz suchen über Kombinations- bzw. Listenfeld
Hallo,
sollte Deinen Erwartungen entsprechen.
Jürgen
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("ListBox1")
print "Position: " & oListbox.SelectedItems(0)
print "Gewähler Eintrag: " & oListbox.getCurrentValue
End Sub
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Datensatz suchen über Kombinations- bzw. Listenfeld
hm, es is aber ne combobox und da gibts kein SelectedItems(0)
Re: Datensatz suchen über Kombinations- bzw. Listenfeld
Ehrlich gesagt weis ich jetzt nicht nicht was Du haben willst?
Den gewählten Eintrag oder die Position?
Wenn ich dem nachgehe
Du machst es Dir wirklich recht einfach.
Zum einen hälst Du es nicht für nötig die Shift-Taste zu benutzen um das Schriftbild erträglich zu machen,
und zu anderen bringt Tante Google bei den ensprechenden Suchbegriffen sofort einen Treffer zur Lösung.
Ausserdem hatten wir hier fast schon einmal die gleiche Diskussion.
Das war's von mir.
Jürgen
Den gewählten Eintrag oder die Position?
Wenn ich dem nachgehe
dann sollte der gewählte Eintrag doch vollkommen ausreichen!nahemoth hat geschrieben:einee combobox in der die Namen nach denen gefiltert werden soll
Du machst es Dir wirklich recht einfach.
Zum einen hälst Du es nicht für nötig die Shift-Taste zu benutzen um das Schriftbild erträglich zu machen,
und zu anderen bringt Tante Google bei den ensprechenden Suchbegriffen sofort einen Treffer zur Lösung.
Ausserdem hatten wir hier fast schon einmal die gleiche Diskussion.
Das war's von mir.
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Datensatz suchen über Kombinations- bzw. Listenfeld
Ich habe eine Liste von Datensätzen, in einer Combobox soll man alle in dem Attribut Name vorkommenden Namen zur Auswahl haben.
Wird dann einer Ausgewählt, so sollen nur die entsprechenden Datensätze ausgegeben werden.
Was verstehst du daran nicht ?
Hier mal noch, wie ich das ganze aufgebaut habe:
Tabellen:
- t_Users -> enthält Benutzer
- t_Logins -> enthält Login-Daten
Formular:
Art des Inhalts: Tabelle
Inhalt: t_Logins
Combobox:
Datenfeld: Name
Listeninhalt: SELECT DISTINCT `Name` FROM `weblogin`.`t_users`
Tabellenkontrollfeld
Makro:
Wenn ich nun in der Combobox einen Eintrag auswähle, dann gibt er diesen auch korrekt in der Msgbox aus, aber an dem tabellenkontrollfeld ändert sich nichts. Er sollte aber nun lediglich die Datensätze Anzeigen, die den Namen matchen.
Das ist das ganze Problem.
Ich hoffe mich versteht man jetzt etwas besser.
Edit:
jetzt hats geklappt:
Wird dann einer Ausgewählt, so sollen nur die entsprechenden Datensätze ausgegeben werden.
Was verstehst du daran nicht ?
Hier mal noch, wie ich das ganze aufgebaut habe:
Tabellen:
- t_Users -> enthält Benutzer
- t_Logins -> enthält Login-Daten
Formular:
Art des Inhalts: Tabelle
Inhalt: t_Logins
Combobox:
Datenfeld: Name
Listeninhalt: SELECT DISTINCT `Name` FROM `weblogin`.`t_users`
Tabellenkontrollfeld
Makro:
Code: Alles auswählen
Sub SelectCombobox
Dim oForm As Object
Dim oCtrlModel As Object
Dim oTabellenKontrollfeld as Object
oForm = ThisComponent.drawpage.forms.getbyindex(0)
oCtrlModel = oForm.getByName("Combobox")
value = oCtrlModel.Text
msgbox(value)
oTabellenKontrollfeld = oForm.getByName("Tkf")
oTabellenKontrollfeld.Filter = value
oTabellenKontrollfeld.ApplyFilter = True
oForm.Reload
End Sub
Das ist das ganze Problem.
Ich hoffe mich versteht man jetzt etwas besser.
Edit:
jetzt hats geklappt:
Code: Alles auswählen
Sub SelectCombobox
Dim oForm As Object
Dim oCtrlModel As Object
Dim oTabellenKontrollfeld As Object
oForm = ThisComponent.drawpage.forms.getbyindex(0)
oCtrlModel = oForm.getByName("Combobox")
value = oCtrlModel.Text
oTabellenKontrollfeld = oForm.getByName("Tkf")
oForm.Filter = "(`weblogin`.`t_logins`.`Name` = "& "'"& value & "')"
oForm.applyFilter = True
oForm.Reload
End Sub