Hallo,
ich habe ein Problem.Ich muss eine externe Tabelle aus einem Linux ERP System in ABAS auswerten.
Dabei sind in den Textfeldern auch Zeilenumbrüche vorhanden.
Wenn ich Ersetzen([Artikel].[vbez];"vbCrLf";" ") verwende, bekomme ich immer "Datentypenkonflikt im Kriterienausdruck".
Was mache ich falsch?
Grüße aus der Pfalz
Hallo,
vbCrLf ist VBA (VBA Konstante), das kann man in einer Abfrage nicht verwenden.
Du musst die Ascii Codes verwenden.
Ersetzen([vbez];Chr(13) & Chr(10);" ")
Wobei Du erst mal prüfen solltest, ob wirklich 13 und 10 verwendet wird.
Oder nur 10 (LF). Auch die Reihenfolge könnte anders sein.
Vieleicht sind auch 2 Durchläufe erforderlich (erst 13, dann 10m oder umgekehrt).
Da musst Du etwas probieren.
Danke für den Tipp Klaus,
jetzt poppt die Abfrage kurz korrekt auf und dann kommt wieder "Datentypkonflikt..."
SELECT Ziffer.nummer, Ziffer.vbez
FROM Ziffer
WHERE (((Ziffer.vbez)=Replace([vbez],Chr(10) & Chr(10)," ")));
habe 10 und 13 probiert.
Hallo,
Du hast ja 2x 10 in der Abfrage.
Hast Du verschiedene Versionen probiert, wenn ja was ?
Hast Du geprüft, ob Chr(10) und 13 überhaupt vorhanden ist ?
Hallo,
ich habe alle Varianten getestet, wie kann ich den prüfen welches Zeichen vorhanden ist?
Beispiel:
Orginal: Präsentationsmappe - befüllt mit
aktuellen Flyern (+ Auslauf Flyer)
Nach der "Entf" Taste:
Präsentationsmappe - befüllt mitaktuellen Flyern (+ Auslauf Flyer)
Gruß Edwin
Zitat von: Olytyp am September 13, 2023, 14:40:08jetzt poppt die Abfrage kurz korrekt auf und dann kommt wieder "Datentypkonflikt..."
[...]
WHERE (((Ziffer.vbez)=Replace([vbez],Chr(10) & Chr(10)," ")));
Warum steht der Ausdruck in der Where-Klausel? Damit hast du nur Datensätze im Ergebnis, bei denen nichts zu ersetzen war. - Das ergibt doch wenig Sinn.
Nebenbei ist es auch die Ursache für den Datentypkonflikt.
Wenn du NULL-Werte in der Spalte
vbez hast, ist das Ergebnis des Ausdrucks:
#ErrorWenn du dann noch in der Where-Klause
#Error mit dem Ausgangswert der Spalte vergleichen willst, kommt es zum Datentypkonflikt.
Verwende die NZ-Funktion, um NULL-Werte zu behandeln.
Das könnte dann etwa so aussehen:
SELECT nummer, vbez, Replace(NZ([vbez],''),Chr(13) & Chr(10),' ') AS VBezOhneZeilenumbruch
FROM Ziffer;
Toll Danke das wars bin halt trotz 71 ein Newbie :)