Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Access Zeilenumbruch in Abfrage entfernen

Begonnen von Olytyp, September 13, 2023, 14:07:47

⏪ vorheriges - nächstes ⏩

Olytyp

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

MzKlMu

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.

Gruß Klaus

Olytyp

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.

MzKlMu

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 ?
Gruß Klaus

Olytyp

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

PhilS

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: #Error
Wenn 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;
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Olytyp

Toll Danke das wars bin halt trotz 71 ein Newbie :)