Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Bastista am November 28, 2016, 13:25:14

Titel: Mit Dropdown Feld in Spalten suchen
Beitrag von: Bastista am November 28, 2016, 13:25:14
Servus Community,

bin neu hier, aus dem Grund, da ich keine Lösung für mein "Problem" gefunden habe. Ich hoffe ihr könnt mir helfen.

Also ich habe eine Tabelle mit meinen Daten aller Firmen. Daraufhin habe ich ein Formular mit einer Abfrage erstellt, sodass ich eine Volltextsuche habe. Nun möchte ich aber mit Hilfe eines DropDown Feldes in den jeweiligen Spalten suchen. Beispiel: Ich möchte nur in der Spalte Firmenbezeichnung nach GmbH suchen. Sprich ich wähle im Kombinationsfeld Firmenbezeichnung aus und im Textfeld (Volltextsuche) gebe ich GmbH ein.

Wie kann ich das ganze realisieren? Muss dazu sagen, das ich kein Profi bin.  ::)

Danke
Titel: Re: Mit Dropdown Feld in Spalten suchen
Beitrag von: DF6GL am November 28, 2016, 13:40:19
Hallo,

erstelle ein Kombifeld ("cmbSpalten") mit Einstellung "Wertliste" und in Eigenschaft "Datensatzherkunft" die Liste der betroffenen Feldnamen (Spalten) ("Firmenbezeichnung";"FirmaOrt";"FirmaPLZ";.....)
(Der Einfachheit halber lasse ich das Auslesen der Tabellenfeldnamen direkt aus der Tabelle hier außen vor...)

In der Ereignisprozedur "Nach Aktualisierung des Textfeldes ("txtSuchen"):

Sub txtSuchen_Afterupdate()
Me.Filter=Me!cmbSpalten & "='" & Me!txtSuchen & "'"   
'oder bei Teiltextsuche:  Me.Filter=Me!cmbSpalten & " like '*" & Me!txtSuchen & "*'"
Me.FilterOn =true
End Sub


btw:  nur für Datentyp Text bestimmt.

Titel: Re: Mit Dropdown Feld in Spalten suchen
Beitrag von: Bastista am November 28, 2016, 14:15:47
Danke erstmal für deine Antwort.

Also ein Textfeld hab ich ja schon erstellt. Dieser sucht in allen Spalten nach dem eingegebenen Wort. Nun zu dem Kombinationsfeld. Wenn ich eine Datensatzherkunft angeben soll, dann brauche ich doch aber eine neue Tabelle, mit den Spaltenüberschriften? Weil im Kombinationsfeld kann ich ja keine Spaltenüberschriften auflisten, sondern nur die Inhalte einer Spalte. Ist das nur eine VBA Geschichte oder muss ich auch noch meine Kriterien in der Abfrage verändern?

Sorry bin noch Anfänger  :-[
Titel: Re: Mit Dropdown Feld in Spalten suchen
Beitrag von: DF6GL am November 28, 2016, 15:11:05
Hallo,

ich habe Dir ein Rezept gegeben, unabhängig davon, was alles Du schon davon (teilweise) erstellt hast.

ZitatDatensatzherkunft angeben soll, dann brauche ich doch aber eine neue Tabelle, mit den Spaltenüberschriften?

Lies meinen Beitrag nochmal. Dort steht <<"mit Einstellung "Wertliste">>. D. H. die Eigenschaft "Herkunftstyp" soll auf "Wertliste" stehen und nicht "Tabelle/Abfrage".

ZitatWeil im Kombinationsfeld kann ich ja keine Spaltenüberschriften auflisten, sondern nur die Inhalte einer Spalte
Das gälte nur für "Tabelle/Abfrage"..


ZitatIst das nur eine VBA Geschichte oder muss ich auch noch meine Kriterien in der Abfrage verändern?

Die Kriterien in der Abfrage sind etwas anderes als die Filterung des Formulars.
Es dürfen natürlich nur die Spaltennamen verwendet werden, die in der Abfrage vorkommen. Zudem können nur Daten im Formular weiter gefiltert werden, die auch von der Abfrage mit deren Kriterien geliefert werden.




Titel: Re: Mit Dropdown Feld in Spalten suchen
Beitrag von: Bastista am November 30, 2016, 15:36:32
Sorry das ich so spät antworte, aber ich bin die ganze Zeit am rumprobieren. Also es funktioniert "fast", dank deinem Tipp. Das Kombinationsfeld funktioniert nur bei einigen Auswahlen. Die Datensatzherkunft stimmt eigentlich überein mit der Tabelle. Muss die in der gleichen Reihenfolge geschrieben werden wie in der Abfrage oder wie in der Tabelle? Oder ist das nicht relevant?

Außerdem wenn ich nach der ersten Suche wieder was eingeben will, geht es auch nicht. Ich muss immer das Formular einmal schließen und öffnen.

Ich hoffe man kann mich verstehen.
Danke, MfG Bastista
Titel: Re: Mit Dropdown Feld in Spalten suchen
Beitrag von: DF6GL am November 30, 2016, 17:21:33
Hallo,

die Reihenfolge der Listenfeld-Spalten richtet sich nach der Feldlidte in Select-Teil der Abfrage...

Ansonsten:

lade die Db hier hoch, komprimiert/repariert und gezippt
Titel: Re: Mit Dropdown Feld in Spalten suchen
Beitrag von: Lachtaube am November 30, 2016, 21:30:34
Wenn im Kombifeld Feldliste als Eigenschaft für Herkunftstyp auswählt ist, kann man in der Eigenschaft Datensatzherkunft eine gespeicherte Abfrage oder Tabelle auswählen, deren Felder im geöffneten Formular zur Auswahl zur Verfügung stehen. Wenn nur eine Teilauswahl aller Felder von Interesse ist, erstelle eine Auswahlabfrage mit genau diesen Feldern und trage als Kriterium in einer auszublendeten Spalte z. Bsp. den Feldwert 1 und darunter als Kriterium 0 ein. Die Abfrage liefert dann keine Daten, wohl aber die Felder für den Verwendungszweck.
Titel: Re: Mit Dropdown Feld in Spalten suchen
Beitrag von: Bastista am Dezember 01, 2016, 10:45:48
Guten Morgen,

also ich habe es jetzt umschrieben, weil es nur Teilweise ging. Die Me.Filter Zeile sieht jetzt so aus:
Me.Filter = "Me!cmbSpalten Like '*" & Me!txtSuche & "*'"

Aber es funktioniert nicht. Er fragt immer nach einem Parameter. Wenn ich allerdings Me!cmbSpalten ersetze mit Betriebsformen (Spaltenüberschrift meiner Tabelle) dann funktioniert es.

Vielleicht eine Lösung?
Titel: Re: Mit Dropdown Feld in Spalten suchen
Beitrag von: Lachtaube am Dezember 01, 2016, 12:36:10
Du versuchst eine Spalte Me!cmbSpalten nach dem Suchtext zu filtern. Alles, was innerhalb von doppelten Anführungszeichen steht, sieht VBA und auch der Ausdrucksdienst von Access als Text an. Am besten lässt man sich den Filter-Text in eine MsgBox oder in den Direktbereich schreiben - dann werden diese Art von Fehlern augenfälliger. Richtig wäre:Me.Filter = Me.cmbSpalten & " Like '*" & Me!txtSuche & "*'"

PS: mit den am Anfang und Ende fix gesetzten Jokern (*) nimmst Du dem Anwender viel Freiheit in der Suchgestaltung und verhinderst effektiv die Verwendung von Indizes. :( Meine Benutzer lernen Stern (*), Fragezeichen (?), Raute (#) und die Verwendung von Zeichenbereichen (z. Bsp. ([0-5]) bzw. deren Negierung selbständig anzuwenden. Ich würde so etwas allerhöchstens optional für den Anfang und das Ende der Suchzeichenfolge anbieten.

PPS: die Suche nach McDonald's funktioniert so allerdings nicht. Dazu müsste man entweder mittels Replace-Funktion einzelne Hochkommata (') verdoppeln oder das Kriterium durch die Funktion BuildCriteria schicken.
Titel: Re: Mit Dropdown Feld in Spalten suchen
Beitrag von: Bastista am Dezember 01, 2016, 13:12:30
Servus,

juhu vielen dank Lachtaube(und DF6GL), jetzt funktioniert es einwandfrei.  :)