PDA

Vollständige Version anzeigen : Dateinamen mit ' im Bezeichner


Tadeus_Punkt
28.10.2003, 06:26
moin,

lese die dateinamen eines verzeichnisses ein,
dabei gibt es das problem, daß wenn ein ' (Bemerkungszeichen)
im Dateinamen ist, ich das nicht mit über die insert-fkt in die
tabelle einlesen kann. im string vor der fkt steht aber der dateiname noch richtig.

DoCmd.RunSQL "insert into mp3_user (cd_folder_nr, cd_file_nr , cd_path , file_name) values (" & lcfolder & ", " & lcfile & ", " & fDir.Path & ", " & strName & ");"

wie kann ich das problem umgehen?
gibt es noch mehr zeichen, welche acc so behandelt?

ersetze es im moment durch ein anderes zeichen, aber da ich später einen link zu dem file brauch, wäre es nicht schlecht wenn ich genau dieses zeichen in die tbl bekommen würde.

vielen dank für eure hilfe

gruss TP

MarioR
28.10.2003, 07:02
Hallo,

mich wundert, dass Du andere Dateinamen einlesen kannst, da Zeichenketten in ' oder " eingeschlossen werden müssen:
... & ", '" & strName & "');"
bzw.
... & ", """ & strName & """);"
In Deinem Fall wäre allerdings nur die 2. Variante möglich.

Tadeus_Punkt
28.10.2003, 07:56
hallo Mario,

hab gestern abend noch rumprobiert u da hab i die wohl weggemacht.
richtig ist natürlich

... '" & strName & "' ...

... deine zweite variant funktioniert tatsächlich, ich bin begeistert. :happy:
... hast du noch kurz lust zu erklären, wieso das nur so funktioniert?
ist für mich noch nicht wirklich logisch.

hab tausend dank für deine hilfe

gruss TP

MarioR
28.10.2003, 20:18
Access ersetzt die "" beim Zusammenfügen der Zeichenkette durch ein ", dass dann innerhalb der Zeichenkette steht.

Beispiel:
Dim strBand As String
Dim strSQL As String

strBand = "Guns N' Roses"
strSQL = "SELECT * FROM Tabelle WHERE Band=""" & strBand & """"
MsgBox strSQL
Der Code sieht zwar abenteuerlich aus, der zu verarbeitende SQL-String ist aber vollkommen i.O. (siehe MsgBox).


strSQL = "SELECT * FROM Tabelle WHERE Band='" & strBand & "'"
funktioniert dagegen nicht, da im Where-Teil die zu suchende Zeichenkette nur <i>Guns N</i> ist (vollständig in ' eingeschlossen) und das verbleibende <i> Roses'</i> nicht mehr zugeordnet werden kann.

Tadeus_Punkt
29.10.2003, 06:41
ok,

wenn man sich die sql-anweisung ausgeben läßt,
dann sieht es ganz logisch aus, nur das texte
ja immer in '" "' stehen sollten, das bringt mich
durcheinander.

hab vielen dank für deine nochmaligen ausführungen hier,
hast mir sehr geholfen.

gruss TP