Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Zeilenumbruch in Abfrage verhindern

Begonnen von sellrich, Dezember 07, 2018, 10:45:02

⏪ vorheriges - nächstes ⏩

sellrich

Hallo,

ich hab eine Abfrage die mir einen sehr langen Text (zwischen 25 und 500 Zeichen) in eine Spalte einer Tabelle schreiben soll :
INSERT INTO ImportActindo ( [Shop-Beschreibung: Produktbeschreibung] )
SELECT First(PREISE03.DESCR) AS ErsterWertvonDESCR
FROM PREISE03;



Also ich habe die Abfrage in der Entwurfsansicht gemacht. Zum Einen : ich musste Erster Wert angeben. Bei jeder anderen Möglichkeit gibt er mir japanische Symbole aus (warum auch immer) mit "Erster Wert" klappt es.
Jetzt hat der Text aber Zeilenumbrüche. Und da kommen wir zu meiner Frage.

Wie unterbinde ich Zeilenumbrüche in solch einem Text? Geht das überhaupt in der Abfrage?

DF6GL

Hallo,

bei Text länger als 255 Zeichen muss das entspr. Tabellenfeld als Memo deklariert/definiert sein.

Weiterhin:
Solche [Shop-Beschreibung: Produktbeschreibung]  Feldnamen sind latent fehlerträchtig und in keiner Weise DB-gerecht.


ZitatBei jeder anderen Möglichkeit gibt er mir japanische Symbole aus (warum auch immer) mit "Erster Wert" klappt es.

ist so nicht einzusehen und deutet eher auf eine zerschossene Tabelle hin, oder "DESCR" evtl. ist vom Typ Memo (langer Text) und "[Shop-Beschreibung: Produktbeschreibung]"  vom Typ kurzer Text.


Warum sollen die Zeilenumbrüche entfernt werden?  (Falls die korrekter Bestandteil des zu kopierenden Textes sind)

sellrich

#2
ZitatWeiterhin:
Solche [Shop-Beschreibung: Produktbeschreibung]  Feldnamen sind latent fehlerträchtig und in keiner Weise DB-gerecht.

Ich weiß. Allerdings ist das ein Kundenauftrag, indem eine Liste für einen Import aufbereitet werden soll. Und die Plattform für den Import akzeptiert nur genau diesen Feldnamen. Ist für keinerlei Weiterverarbeitung innerhalb von Access.. Die Tabelle wird monatlich gefüllt und als CSV exportiert.

Zitatist so nicht einzusehen und deutet eher auf eine zerschossene Tabelle hin, oder "DESCR" evtl. ist vom Typ Memo (langer Text) und "[Shop-Beschreibung: Produktbeschreibung]"  vom Typ kurzer Text.

Verstehe ich auch absolut nicht. Gebe ich Erster Wert ein steht die komplette Beschreibung im Feld. Gehe ich auf eine andere Funktion wie z.B Gruppieren (oder was sollte man für den Fall optimalerweise nehmen? Grp ist ja Standard?) kommen nur komische Zeichen. Obs an einer zerschossenen Tabelle liegt weiß ich nicht.

Ich habe eine Excel-Tabelle verknüpft in der das DESCR Feld ist. Als Langer Text.
Die Access-Tabelle "[Shop-Beschreibung: Produktbeschreibung]" ist auch Langer Text.


Zitat
Warum sollen die Zeilenumbrüche entfernt werden?  (Falls die korrekter Bestandteil des zu kopierenden Textes sind)

Weil der Dienstleister der für unseren Kunden arbeitet die CSV ins System einlesen muss. Und da werden die Zeilenumbrüche als Fehlerhaft erkannt. Unser System hat da kein Problem mit. Deswegen müsste ich das in der Abfrage, beim kopieren, mit anpassen.

EDIT: zudem führt der Export dieser Produktbeschreibung zur CSV dazu, dass die CSV Datei Leerzeilen hat. Hab es mit mehreren Varianten getestet und die Leerzeilen kommen nur in den Teilen mit Umbruch. Also muss ich diese Umbrüche irgendwie entfernen / unterdrücken.

Beaker s.a.

Schnellschuss

INSERT INTO ImportActindo ( [Shop-Beschreibung: Produktbeschreibung] )
SELECT Replace(PREISE03.DESCR; vbCrLf; " ") AS TextOhneUmbruch
FROM PREISE03

Anmerkung: evtl. wird der Umbruch auch nur durch ein vbLf repräsentiert, -
musst du ausprobieren. Vielleicht auch durch Chr(10) oder Chr(13).
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

sellrich

Ich erhalte bei diesem Versuch folgenden Fehler :

Syntaxfehler in Abfrageausdruck 'Replace(PREISE03.DESCR; vbCrLf; " ")'.

ebs17

Komma statt Semikolon - in SQL wird immer englisch gesprochen.
vbCrLf - in SQL sind VBA-Konstanten nicht bekannt. Alternativen mit Chr verwenden.
Mit freundlichem Glück Auf!

Eberhard

Beaker s.a.

@Eberhard
Danke für Korrektur, - war ich wohl noch nicht ganz wach.  ;)

@sellrich
Also, nicht vielleicht, sondern bestimmt mit Chr(10) und/oder Chr(13).
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

sellrich

Vielen lieben Dank. Das hat zum erwünschten Erfolg geführt.