[Access] undefinierte Funktion replace in ausdruck

Zvoni

Erfahrenes Mitglied
Hallo zusammen,

ich habe einen SQL-SELECT-String, welcher per Replace-Funktion diverse String-Ersetzungen vornimmt.

Problem: Wenn ich die Abfrage in Access2000/2003/2010 direkt eingebe, funktioniert sie einwandfrei, sobald ich sie jedoch von aussen an Access übergeben will, kommt im Betreff genannte Fehlermeldung.

Ich muss den SQL-String aber von Aussen übergeben, da der WHERE-Abschnitt dynamisch im Client-Code aufgebaut wird.
PARAMETER-Übergabe geht auch nicht, da ich je nach User-Eingabe per AND oder OR im WHERE weitermache.

Hier ein Beispiel wie es direkt in Access funktioniert, aber nicht als SQL-String per ADO oder DAO.
Ich hab sogar mal testweise das ganze versucht als StoredProcedure aufzurufen, gleicher Fehler.
SQL:
SELECT P1.TENR, P1.Bezeichnung1, P1.Bezeichnung2, P1.Gewicht
FROM Teilestamm AS P1
INNER JOIN (SELECT TENR, Replace(Replace(Bezeichnung1+Bezeichnung2,'-',''),' ','') AS Bezeichnung FROM Teilestamm)  AS P2 ON P1.TENR = P2.TENR
WHERE (P2.Bezeichnung LIKE '*ISO4762*' AND P2.Bezeichnung LIKE '*M8x20*' AND P2.Bezeichnung LIKE '*8.8*') OR (P2.Bezeichnung LIKE '*DIN912*' AND P2.Bezeichnung LIKE '*M8x20*' AND P2.Bezeichnung LIKE '*8.8*');

Meine Google-Recherchen haben ergeben, dass das anscheinend ein bekanntes Phänomen ist, aber irgendwie ne Lösung konnte ich nicht finden. Was ich herausfinden konnte ist, dass anscheinend der Jet-Treiber (4.0 für 2k/2K3 - ACE12.0 für 2K7/2K10) das Replace nicht versteht. Geht es vielleicht mit direktem ODBC, also die Jet umgehen?
Oder ist Access dafür einfach nicht geeignet?
Als Alternative hätte ich noch SQLServerExpress2005 zur Verfügung, müsste mich da aber erst einarbeiten
 

Neue Beiträge

Zurück