Dllookup
Hallo Forum,
ich möchte mit
If Not IsNull(DLookup("Pfadname", "tbl_Files", "Pfadname Like '" & "sFullFile" & "'")) Then
GoTo weiter
End If
prüfen, ob ob in der Tabelle tbl_Files im Feld Pfadname das Kriterium sFullFile schon enthalten ist. Wenn das der Fall ist soll er nach "weiter" gehen und anderen Code ausführen. Nun kann es aber sein, dass in den Pfadnamen auch Zeichen wie ' - + vorhanden sind. Dann ignoriert der Code aber hartnäckig das Vorhandensein des Pfades. Ich habe schon alle möglich Kombinationen in den " und ' ausprobiert - leider ohne Erfolg.
Weiss da jmd Rat?
VG
HP
Antwort schreiben
Antwort 1 von RaHi vom 01.02.2022, 09:30 Options
Hallo hp,
Wenn sFullFile ein Zeichenkette ist, lass die Anführungszeichen drum herum weg. Falls in dem
String sFullFile ein * oder ? Vorkommt, kannst du statt Like auch = verwenden. Du kannst auch bei
diesem Code ein Haltepunkt setzen und im Direktfenster beim Halten die Strings oder die ganze
Funktion prüfen.
Gruß Ralf
Antwort 2 von HP1965 vom 01.02.2022, 13:38 Options
Hi Ralf,
danke für Deine Antwort. Das Problem sind aber nicht die * oder ? sondern eher die ' in den Tabellenwerten.
Ich speichere Pfadangaben ab, die so aussehen können
C:\Verzeichnis1\Unterverzeichnis\'a\
oder
C:\Verzeichnis1\Unterverzeichnis\'a-b'\
Kanns jetzt zwar nicht testen weil ich auf Arbeit bin, aber die Anführungszeichen um sFullfile habe ich auch schon weggelassen und es hat nicht geklappt.
evtl ist auch Dlookup dafür gar nicht geeignet. Aber was dann ??
VG
HP
Antwort 3 von RaHi vom 01.02.2022, 18:28 Options
Hallo hp,
Seltsame Dateinamen, aber wenn du sie so benötigtst, na gut. Falls das Zeichen ' das einzige
Sonderzeichen ist, hier ein Ansatz. Du musst die ' Zeichen verdoppeln, dann funktioniert das
mit der Funktion dlookup. Ersetze "sFullFile" durch
replace(sFullFile,"'","''")
Ich habe es erfolgreich getestet. Bedenke aber was du dir antust, wenn du solche Dateinamen
in anderen Programmabschnitten auch benötigst.
Gruß Ralf
Antwort 4 von HP1965 vom 02.02.2022, 10:32 Options
Hi Ralf,
noch mal Danke.
Seltsam ist relativ. Das ganze soll mal ne CD DB werden und da können " ' " schon mal im Pfad/Dateinamen vorkommen.
Hab aber jetzt nen Freund gefunden, der mir behilflich war.
Darf ich vorstellen chr$(34)
Konkret hab ich's jetzt so geschrieben
If Not IsNull(DLookup("ID", "tbl_files", "Pfadname=" & Chr$(34) & sFullFile & Chr$(34))) Then
....
und Heidewitzka es geht.
Vielen Dank für Deine Bemühungen.
HP
Achso Replace kann ich in diesem Fall nicht gebrauchen, weil später auf die Dateien ja zugegriffen werden soll.
Antwort 5 von RaHi vom 02.02.2022, 22:10 Options
Hallo HP,
chr(34) ist das Zeichen " ! Falls dieses Zeichen in deinem Dateinamen vorkommt (Seltsam ist relativ!), wirst du über das gleiche Problem stolpern wie beim Zeichen '. Somit würde auch
If Not IsNull(DLookup("Pfadname", "tbl_Files", "Pfadname Like """ & sFullFile & """")) Then
GoTo weiter
End If
funktionieren, leider aber auch nicht mit " im Dateinamen. In diesem Fall würde auch nur das "Replace" funktionieren. Auch wenn du auf die Datei zugreifen willst, wirst du das Problem haben. Probiere es mal aus. Falls es bei dir doch funktionieren sollte, poste bitte mal die Lösung.
Gruß
Ralf