Sonderzeichen in String

Hallo,

bitte um Hilfe!

ich habe folgenden Access Code Ausschnitt:

Set dba = CurrentDb.OpenRecordset(„Finale Pre-Alert Liste“, dbOpenDynaset, dbSeeChanges) 'Zugang Daten öffnen

'Einlesen erster Datensatz

dba.MoveFirst
RfrncNr1 = dba!RfrncNr
Grading_actual1 = dba!Name
Country = dba!Country
Volumen = dba!Volumen_Infosatz

If IsNull(Country) And Volumen „“ Then

DoCmd.SetWarnings False
DoCmd.RunSQL „insert into Check_Pre_Alert_List values(’“ & RfrncNr1 & „’,’“ & Trim(Grading_actual1) & „’,’“ & kenn2 & „’);“

End If

If IsNull(Volumen) And Country „“ Then

DoCmd.SetWarnings False
DoCmd.RunSQL „insert into Check_Pre_Alert_List values(’“ & RfrncNr1 & „’,’“ & Trim(Grading_actual1) & „’,’“ & kenn4 & „’);“

End If

If IsNull(Volumen) And IsNull(Country) Then

DoCmd.SetWarnings False
DoCmd.RunSQL „insert into Check_Pre_Alert_List values(’“ & RfrncNr1 & „’,’“ & Trim(Grading_actual1) & „’,’“ & kenn3 & „’);“

End If

Wie man sieht lese ich eine Tabelle ein - Werte den inhalt aus und schreibe bei bestimmten Kriterien in eine neue Tabelle Werte weg.
Mein Problem ist nicht der VB Code - sondern der Tabelleninhalt.

Bei folgendem Text:

NOVERO SOCIET A’ PER AZIONI

bricht mir das Programm immer ab…

Folgende Meldung:
3075 Laufzeitfehler:
Syntaxfehler - Fehlender Operator in Abfrageausdruck

Liegt das vl. an dem ’ Zeichen?

Der Code, wo das Programm aussteigt ist hier :

DoCmd.RunSQL „insert into Check_Pre_Alert_List values(’“ & RfrncNr1 & „’,’“ & Trim(Grading_actual1) & „’,’“ & kenn3 & „’);“

Kann mir jemand helfen? ich weiss nimmer weiter…l

Hi T_Helm,
das liegt genau an dem Hochkomma.
Dieses schliesst Texte ein.
Versuche mal, ein vorhandenes Hochkomma durch 2 Hochkkommata zu ersetzen.
Bei mir klappt das.

Gruß
Klaus

Hallo Klaus,

meinst du:

Replace(Grading_actual1, „’“,"’’")

?

Dank dir

gruss,
tobias

Hallo T,

DoCmd.RunSQL „insert into Check_Pre_Alert_List
values(’“ & RfrncNr1 & „’,’“ & Trim(Grading_actual1) & „’,’“ &
kenn3 & „’);“

Wie man sieht lese ich eine Tabelle ein

*hüstel*, möglich, erwähnte ich schon daß ich von Access keine Ahnung habe? :smile:

Mein Problem ist nicht der VB Code - sondern der
Tabelleninhalt.

Das bedeute im Klartext, bei anderen Zellinhalten läuft der Code problemlos durch?

NOVERO SOCIET A’ PER AZIONI

bricht mir das Programm immer ab…

Da spricht schon viel dafür daß es an dem Hochkomma liegt.

Programmiren mußt du das, ih kann dir da leider nicht helfen, aber mal als Idee
Irgednwann nach dem Einlesen aus der ersten Tabelle und dem Abgleich ob es Null oder sonstwas ist, ersetzt durch durch Replace alle Hochkommas im Zelltext durch ’ oder so.

Dann schreibst du das in die neue tabelle und nach dem Schreiben ersetzt du in der dort aktiven Zelle alle # durch Hochkommas.

Sicher, nur ein workaround.

DoCmd.RunSQL „insert into Check_Pre_Alert_List values(’“ &
RfrncNr1 & „’,’“ & Trim(Grading_actual1) & „’,’“ & kenn3 &
„’);“

Ich kann da nicht alles exakt deuten aber ich sehe da dies:

values(…Trim(…)…)

Wie wäre es du baust vor der Codezeile ein:
Msgbox …Trim(…)…
alles das "Innere der valuesfunktion.
und gehst den Code mit F8 durch, mal mit Zellwerten mit, mal ohne Hochkomma im Text.

Vielleicht auch mit dem mir komisch vorkommenden Semikolon am Ende.

Aufgrund der unterschiedlichen Anzeigen der Msgboxen müßte man doch sehen an welchem Codeteil es liegt und diesen ggfs. abändern.

So in der Art wäre mein Vorgehen.

Gruß
Reinhard

Hallo, dank dir - ich habe es getestet und es ist wirklich das ’ Zeichen.

Habe es mal spassigerweise aus der Tabelle entfernt und das Programm läuft einwandfrei durch.

Liegt wohl daran, dass Access darin eine Anweisung sieht - obwohl es keine ist :smile: Das sowas überhaupt möglich ist…

Ich werde mal morgen versuchen, die Tabelle vorher zu bereinigen, wobei das Replace(blalba, „’“,"") nicht wirklich funktioniert, da VB wiederum in ’ eine Umklammerung versteht… die halt nicht geschlossen wird (durch 2x ') …

Gruss,
Tobias

Hallo Tobias,

Liegt wohl daran, dass Access darin eine Anweisung sieht -
obwohl es keine ist :smile: Das sowas überhaupt möglich ist…

okay, bei vielen Dingen von MS erkennt man nicht ob es ein Bug oder ein Feature ist dessen Hintergrund/Entstehungsgeschichte man nicht kennt.

Ich werde mal morgen versuchen, die Tabelle vorher zu
bereinigen,

wobei das Replace(blalba, „’“,"") nicht wirklich
funktioniert, da VB wiederum in ’ eine Umklammerung
versteht… die halt nicht geschlossen wird (durch 2x ') …

*hmmh* k.A., Anstatt dem Hochkomma kannst du auch Chr(39) nehmen.

Sorry, ich kann mangels Wissen in Access nix testen.

Gruß
Reinhard

Hi T_Helm,
ja genau so meinte ich.
Den genauen Sinn habe ich nicht verstanden, aber so gehts.
Das Problem habe ich auch mal gehabt, eine Zeitlang habe ich versucht, die Eingabe von Hochkomma zu vermeiden (bspw. in Gänsefüsschen umzuwandeln) und dann zu speichern, aber gerade bei den Namen ist das ja nötig dass es funktioniert.
Ich hoffe geholfen zu haben.

Viel Erfolg

Klaus