2016-05-21 7 views
0

Ich erhalte die Fehlermeldung "Datentypenkonflikt in Kriterium-Ausdruck" mit der folgenden Update-Anweisung in MS Access Ausführung 2013Get Data Type Mismatch Fehler auf, wenn in Ersetzen-Funktion mit WHERE-Klausel von MS Access Update-Anweisung

UPDATE tblTasks 
    SET tblTasks.IconFilePath = "C:\Images\john.smith.jpg" 
WHERE (((Replace([PersonResponsible]," ",""))="Smith,John") 
    AND ((Len([PersonResponsible]))>0)); 

Wenn ich den Funktionsaufruf aus der WHERE-Klausel entfernen, wird die Anweisung ohne Fehler ausgeführt.

Der Datentyp des PersonResponsible Feld ist Kurztext (255). Ich habe versucht, den Replace-Aufruf in CStr und auch NZ zu umbrechen, aber immer noch den Datentyp Mismatch-Fehler.

Alle Gedanken sind willkommen.

Danke

+0

Können wir die * John Smith * -Datenzeile sehen, um das Problem an unserem Ende zu reproduzieren? – Parfait

+0

HI Entschuldigung, ich befolge diese Frage nicht. "Smith, John" ist im wörtlichen Sinne, was in der Abfrage übergeben wird. Ich muss etwas verpassen. Können Sie diese Anfrage für die "John Smith Datenleitung" weiter ausführen? –

Antwort

0

Wenn [PersonResponsible] nulls erlaubt, Ihre SQL ändern:

UPDATE tblTasks 
    SET tblTasks.IconFilePath = "C:\Images\john.smith.jpg" 
WHERE (((Replace(Nz([PersonResponsible],"")," ",""))="Smith,John") 
    AND ((Len(Nz([PersonResponsible],"")))>0)); 

Aber wirklich, können Sie dies vereinfachen zu:

UPDATE tblTasks 
    SET tblTasks.IconFilePath = "C:\Images\john.smith.jpg" 
WHERE (((Replace(Nz([PersonResponsible],"")," ",""))="Smith,John")); 

Die zusätzliche where-Klausel doesn Füge in diesem Fall keine weitere Spezifität hinzu.

+0

Das hat funktioniert. Vielen Dank! –