1.5k Aufrufe
Gefragt in Datenbanken von
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

5 Antworten

0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
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
0 Punkte
Beantwortet von
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
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
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
0 Punkte
Beantwortet von
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.
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
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
...