Per Kombinationsfeld Datensatz auswählen.

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

midi66
Beiträge: 2
Registriert: Fr, 16.05.2014 10:37

Per Kombinationsfeld Datensatz auswählen.

Beitrag von midi66 » Fr, 16.05.2014 11:05

Hallo zusammen,
ich bin noch ein Greenhorn was Base angeht, dies nur vorab. Ich möchte gerne einen Datensatz aus einer Tabelle auswählen. Da in der Tabelle aber recht viele Datensätze sind, möchte ich das nicht über ein Listenfeld tun, sondern über ein Kombinationsfeld. Damit kann ich ja bei der Suche über die Anfangsbuchstaben schon selektieren. Das Umschreiben des Makros für die Listbox, das ich hier im Forum gefunden habe, hat es leider nicht gebracht. Bei Access, mit dem ich vorher gearbeitet habe, ist diese Funktion integriert. Hat jemand so ein Macro schon?
Vielen Dank für die Hilfe

RobertG
*******
Beiträge: 1629
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Per Kombinationsfeld Datensatz auswählen.

Beitrag von RobertG » Fr, 16.05.2014 17:36

Hallo midi66,

vielleicht hilft Dir das folgende Verfahren - ohne in die Makroprogrammiererei einzusteigen:
Erstelle eine Tabelle "Filter" mit den Feldern "ID" (Ja/Nein- Feld) und mindestens einem weiteren Feld (Text).
Öffne diese Tabelle und fülle einfach den ersten Primärschlüssel mit dem Wert "Ja" (Kreuzchen) aus.
Erstelle eine Abfrage zu Deiner Tabelle "MeineTabelle".
Die Abfrage müsste in etwa so aussehen:

Code: Alles auswählen

SELECT * FROM "MeineTabelle" WHERE LOWER("Text") LIKE '%'||IFNULL((SELECT LOWER("Text") FROM "Filter" WHERE "ID" = TRUE),'')||'%'
Das deckt jetzt nur ein Feld, nämlich das Feld "Text" der Tabelle "MeineTabelle" ab. Es ist so universell gehalten, dass mit der Eingabe von 'E' z.B. alle Datensätze gezeigt würde, die in dem Feld "Text" ein kleines oder großes "E" enthalten.
Jetzt erstellst Du Dein Formular. Das Hauptformular enthält die Tabelle "Filter". Das Unterformular enthält die Abfrage. Es sind keine Verknüpfungen von Hauptformular zu Unterformular notwendig. Im Hauptformular ist nur das Feld "Text" zu sehen. Im Unterformular sind sämtliche gewünschten Felder (oder auch ein Tabellenkontrollfeld) zu sehen. Ebenso ein Button. Dieser Button muss bei den Eigenschaften auf "Formular aktualisieren" gesetzt werden.
Das Hauptformular ändert nur Daten. Es löscht keine Datensätze und fügt auch keine neuen Datensätze hinzu.
Speichere Das Formular ab und teste. Gib irgendetwas in das Textfeld des Hauptformulars ein und drücke den Button. Deine Daten werden danach gefiltert.

Du möchtest das Ganze mit einem Kombinationsfeld versehen, damit auch konkrete Begriffe aus der Tabelle "MeineTabelle" gefunden werden? Öffne das Formular zum Bearbeiten, klicke das Textfeld an und wandele es um ein ein Kombinationsfeld. Wähle als Datenquelle das Format "SQL". Dann kannst Du anschließend den SQL-Code für die Liste erstellen oder über den Button mit den 3 Punkten rechts die Abfrageerstellungs-Benutzeroberfläche starten. Dort suchst Du nur das Feld "Text" der Tabelle "MeineTabelle" aus. Das Ganze lässt Du noch sortieren und wechselst dann von der grafischen Ansicht auf die SQL-Ansicht. Dort führst Du nach "SELECT" das Wort "DISTINCT" ein. Das bewirkt, dass der gleiche Text nicht mehrmals auftaucht. Anschließend die Abfrage speichern und schließen, den Formularentwurf speichern und schließen. Jetzt hast Du ein Kombinationsfeld als Auswahlfeld.

Gruß

Robert

midi66
Beiträge: 2
Registriert: Fr, 16.05.2014 10:37

Re: Per Kombinationsfeld Datensatz auswählen.

Beitrag von midi66 » So, 18.05.2014 15:49

Hallo Robert,
du hast genau den Nagel auf den Kopf getroffen. So eine Lösung schwebte mir vor. Leider habe ich die Tabelle nicht hier zu Hause sondern auf der Arbeit. Ich werde es am Montag ausprobieren und Dir berichten. Zunächst aber mal vielen Dank für die ausführliche Antwort.
Viele Grüße midi66

dackelpack
Beiträge: 2
Registriert: So, 26.06.2016 15:39

Re: Per Kombinationsfeld Datensatz auswählen.

Beitrag von dackelpack » Mi, 31.05.2017 14:51

Ich kram den Thread mal wieder hervor, vielleicht hat es ja in den letzten drei Jahren was Neues gegeben!

Auch ich bin auf der Suche nach so einer Lösung. Bei Access scheint es ja kein Problem zu sein, für Base habe ich nichts finden können. Grundsätzlich gibt es aber bei Base doch eine (zwei) Möglichkeiten. Über die Datensatz-Suche (Lupe) bzw. die Datensatz-Nummer kann ich doch den entsprechenden Datensatz anzeigen lassen und ihn auch bearbeiten. Kann man die Lupe nicht dazu "überreden" ein Kombinationsfeld zu werden?

Moderationshinweis:
Bitte keine "alten" Threads mehr aufwärmen.
Siehe auch Infos zur Forenbenutzung (dort unter: "Eröffnet neue Threads").
Eröffne bitte einen neuen Thread mit Deiner Frage.
Thread geschlossen.

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste