Abfragen mit Platzhaltern

Moderator: ModerationP

Abfragen mit Platzhaltern

Beitragvon _Ratsuchender_ » 19. Nov 2020, 15:26

Hallo, ich habe bereits die Suche bemüht, kann aber keinen Eintrag finden, der mir hilft bzw. den ich umsetzen kann.

In einer ca. 8000 langen Liste mit Dateinamen, beinhaltet eine Spalte den vollständigen Ordnerpfad (bis 246 Zeichen).
Mein Ziel ist es nun, 40 verschiedene Ordnernamen im immer gleichen Syntax, bspw. VZ01-40, ab an einer unterschiedlichen Position zu finden und in eine extra Spalte zu übernehmen. (Filter bei Kriterien mit Wie "*VZ??*") funktioniert.

Mit den Wenn / Wie - Funktionen kann ich die Liste wunderbar filtern und mir auch nur diese Anzeigen lassen. Allerdings ist die Wenn-Funktion nicht in der Lage, die "Ergbnisse" der Platzahlter, in die Ausgabe zu übernehmen. Jedenfalls habe ich dazu keine Mölichkeit gefunden. Eine 40fach-verschachtelte Wenn-Funktion ist offenbar zu lang.

Alternativ könnte ich über eine zweite Liste Suchbegriffe zur Verfügung stellen. Wenn er diese in dem Text-Feld "Ordnerpfad" findet, soll er sie in einer weiteren Spalte ausgeben. Wie eine Art sverweis

Ich bin absoluter Anfänger. SQL ist mir bisher nicht geläufig. Im Excel bin ich versierter.

Danke für ein paar Tipps.
_Ratsuchender_
 

Re: Abfragen mit Platzhaltern

Beitragvon Gast » 19. Nov 2020, 15:48

In der simplen Form könntest Du mit Instr die Position von "VZ" in der Zeichenkette ermitteln, evtl. ergänzt mit einem Vergleich der beiden nachfolgenden Zeichen, etwa Val(XX ) zwischen 0 und 99.

In einer abgewandelten Version unter Verwendung von regulären Ausdrücken könnte man das Suchmuster "VZ\d{2}-\d{2}" anwenden und unmittelbar die FirstIndex-Eigenschaft auswerten.
Gast
 

Re: Abfragen mit Platzhaltern

Beitragvon Bitsqueezer » 19. Nov 2020, 16:53

Hallo,

Du hast die Lösung schon selbst gefunden:

Einfach eine zweite Tabelle mit den Suchbegriffen verwenden. Die kannst Du dann als Werte für LIKE einsetzen. Wenn ein passender Datensatz gefunden wurde, kannst Du einfach den Suchbegriff übernehmen und mußt gar nicht erst mit Instr o.Ä. den String aus dem Text herausklauben.
Code: Alles auswählen
SELECT ST.Suchtext
     ,SB.Wort
FROM tblSuchtabelle AS ST
INNER JOIN tblSuchbegriffe AS SB
ON ST.Suchtext LIKE '*' & SB.Wort & '*'


Und nein: Diese Abfrage kann der Abfrageeditor nicht mehr darstellen, weil er mit Funktionen im "ON"-Bereich nicht zurechtkommt.
Funktioniert aber trotzdem.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7910
Registriert: 21. Jun 2007, 12:17

Re: Abfragen mit Platzhaltern

Beitragvon _Ratsuchender_ » 23. Nov 2020, 09:32

Danke Euch, teste das heute gleich mal ..

Grüße
_Ratsuchender_
 


Zurück zu Access Forum (provisorisch)

Wer ist online?

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