Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
ListBox Suche Filter SQL oder anders?
09.04.2020 12:53:28
Peer
Hallo liebe Excel-VBA Gemeinde.
Ich habe eine mehrspaltige ListBox und ein Textfeld für die Suche. Für die Suche benutze ich einen Array.
Nun möchte ich noch einen Filter anlegen, der in der jeweiligen Option die Listbox durchsucht und anzeigt.
Kann ich hierfür eine SQL Abfrage nutzen oder gibt es speziell hierfür auch noch einen anderen Weg?
Ich habe schon einmal die Filter angelegt und komme mit meinen Gedanken nicht weiter.
Ich habe aus dem Netz eine Beispielmappe, in der alles nach meinen Vorstellungen funktioniert, nur ist der Aufbau anders.

SQL Beispiel

https://www.herber.de/bbs/user/136567.xlsm

Eine kleine Hilfe, was und wo ich den/die Filter einbauen muss im txt_Suche_Change Event?

Array Beispiel (meine Version)
https://www.herber.de/bbs/user/136566.xlsm

Vielen Dank im Voraus
Peer

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox Suche Filter SQL oder anders?
09.04.2020 15:22:20
Luschi
Hallo Peer,
für Filter-Operationen ist AdoDB in Verbindung mit SQL-Statements genau die richtige Variante. Arrays sind zwar sauschnell, es fehlt ihnen aber die Flexibilität und sie sind statisch.
Wenn es Dir nicht gelingt, die Auswahl 'Tätigkeit' in den Filter einzubinden, dann helfe ich Dir gerne, denn schließlich habe ich diese Erweiterung damals für den Fragesteller eingebaut.
Gruß von Luschi
aus klein-Paris
AW: ListBox Suche Filter SQL oder anders?
09.04.2020 15:29:21
Peer
Hallo Luschi.
Von dir war die Arbeit? Endlich kann ich es mal zuordnen. Ich werde es natürlich, wenn du zustimmst, kommentieren im Code.
Hilfe könnte ich schon gebrauchen, da ich noch am Anfang von VBA bin und die Einbindung von SQL in die Arrays für ich noch in weiter Ferne liegt, aber das Projekt noch in diesem Jahr fertig werden soll. ;-)
LG
Peer
Anzeige
Suche ohne SQL
11.04.2020 18:50:10
Matthias
Moin!
Da du geschrieben hattest: "SQL oder anders" hier mal eine andere Variante. :-)
https://www.herber.de/bbs/user/136649.xlsm
Habe deinen Code am Ende gelassen. Wenn du keinen Optionbutton auswählst, wird der Familienname genommen ansonsten der ausgwählte Wert. Es wird nach Groß oder KLeinschreibung unterschieden. Als Bezug wird immer die ganze Liste genommen und nicht eine vorher erstellte (durch rausziehen etc. könnte man aber noch ergänzen). Eine SQL Lösung habe ich nicht eingebaut.
Habe mir dann nochmal die letzten Codes angeschaut. Falls du später mal deine Liste erweitern willst, wäre es ggf. besser die Zeilennummer in die 1. Spalte zu legen und nicht anzuzeigen. Damit könnte du auch wieder nach belieben deine Spaltenanzahlen anpassen. Zudem könntest du die Spaltennummer direkt im Blatt in Spalte A eintragen (geht auch als Formel). Das hätte den Vorteil, dass du den Bereich auch direkt aus dem Blatt an die list Eigenschaft übergeben kannst. Zudem würde das die SQL Lösung erleichtern. Da wird sich ja auf das Blatt bezogen und der Bereich genommen. Die Spalte mit der Zeilennummer fehlt dort. Nachteil ist aber, dass du ggf. deinen Code nochmal durchschauen und vermtl. in TEilen ändern musst. Ist aber wie gesagt nur eine Idee.
VG
Anzeige
AW: Suche ohne SQL
11.04.2020 19:35:15
Peer
Hallo Matthias.
Vielen Dank, dass Du Dich eingeklingt hast. Deine Idee ist sehr interessant und hat auch den Vorteil, dass man nicht viel ändern musste an dem Code.
Den Unterschied mit der Groß- und Kleinschreibung finde ich trotzdem nicht unwichtig, auch wenn nicht (lebens)notwendig.
Den Vorschlag mit der ersten Spalte mit der Zeilennummer ist ein Super Einfall. Das werde ich, wenn ich mit dem Anderen weiter bin, in Angriff nehmen. Es kann ja mal sein, dass man z.B. die Adresse dazu braucht usw.
Ich wünsche Dir ein frohes Osterfest, schöne Feiertage und dass Du gesund bleibst.
LG
Peer
Anzeige
AW: Suche ohne SQL
12.04.2020 16:34:06
Matthias
Moin!
ALso falls du Groß/Kleinschreibung nicht beachten willst, dann ändere die Zeile hier:
If Me.lst_Teilnehmer.List(zeile, optindex(auswahl)) Like Me.txt_Suche & "*" Then

so um
If UCase(Me.lst_Teilnehmer.List(zeile, optindex(auswahl))) Like UCase(Me.txt_Suche) & "*" Then

Falls du den Text nicht vom Anfang her haben willst, könnte man das auch ändern. Gemeint ist damit, dass du für einen Treffer bisher ja den Text vom Anfang kennen musst. Hasst du bspw. den Namen Milchbauer, musst du wissen, dass er mit Milch beginnt. Kannst du dich aber nur daran erinnern, dass Bauer mit drin war, findest du ihn nicht. Da könntest du es so ändern (keine Rücksicht auf Groß/Klein)
If InStr(1, UCase(Me.lst_Teilnehmer.List(zeile, optindex(auswahl))), UCase(Me.txt_Suche), vbTextCompare) > 0 Then

Damit kannst du auch bauer eingeben und findest ihn.
Soweit erstmal. Dir auch noch Frohe Ostern.
VG
Anzeige
AW: Suche ohne SQL
12.04.2020 17:17:12
Peer
Hallo Matthias.
Vielen Dank für deine Mühe und Informationen, trotz des Feiertages.
Das ist genau so, wie ich es mir vorgestellt habe.
LG
Peer

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige