PDA

Vollständige Version anzeigen : zeilen in einer Tabelle aufsplitten


Chris
25.06.2001, 08:25
Guten Morgen!!
ich hab ein kleine Access problem und zwar soll soll ich daten von Access nach SAP exportieren, aber nun der knackpunkt.

in der Access Tabelle habe ich ein Textfeld mit einer zeichenlänge von 255 und die soll Konvertiert werden auf 72 zeichen.

Beispiel:
Datensatz1: textmit100 zeichen

wird konvertiert in:

Datensatz1: text mit 70 zeichen
Datensatz2: text mit 30 Zeichen

ich hoffe, ihr könnt mir irgendwie helfen

Cu Chris

Kurt aus Kienitz
25.06.2001, 08:40
Hallo Chris,

Sind die Ziellängen (70, 30) variabel ?
Wenn nicht kommst Du mit der Funktion Mid$() sicherlich weiter.

Du erstellst einfach eine Abfrage in der Du mit Mid$(DeineSpalte,1,70) bzw. Mid$(DeineSpalte,71,30) zwei Pseudospalten erstellst.

Chris
25.06.2001, 08:50
danke, war immerhin ein Anfang, aber wie genau wende ich das auf die Tabelle an.
ich hab eine Datenbank BETRIEB eine Tabelle WERKSTOFFE und eine Spalte BESCHREIBUNG und diese Spalte kann solche zu teilenden Datensätze enthalten

CU Chris

Kurt aus Kienitz
25.06.2001, 09:11
Hallo nochmal,

Erstelle mal eine Abfrage, die (in der SQL-Ansicht) so aussieht:

SELECT Werkstoffe.ID, Werkstoffe.Kurzname,
Mid$(Werkstoffe.Beschreibung,1,70) AS Beschreibung1bis70,
Mid$(Werkstoffe.Beschreibung,71,30) AS Beschreibung71bis100
FROM Werkstoffe;

Diese Abfrage kannst Du dann exportieren oder sonstwie verwenden um die Daten nach SAP zu übertragen.

A.S.
25.06.2001, 09:17
Hallo Kurt,


SELECT Werkstoffe.ID, Werkstoffe.Kurzname,
Mid$(Werkstoffe.Beschreibung,1,70) AS Beschreibung1bis70,
Mid$(Werkstoffe.Beschreibung,71,30) AS Beschreibung71bis100
FROM Werkstoffe;

Diese Abfrage kannst Du dann exportieren oder sonstwie verwenden um die Daten nach SAP zu übertragen.[/quote]

Du Mißverstehst Chris. Er benötigt eine zweizeilige Ausgabe des Quellfeldes. IMHO muß er dazu zunächst eine Zusatztabelle erstellen. Habe momentan aber keine Zeit und Gelegenheit (Cheffe im Büro :cool: ) um dort etwas ausarbeiten zu können.

------------------
HTH

Arno

Chris
25.06.2001, 09:37
jo, Arno hat Recht, man müsste das mit einer zwischentabelle machen, wobei mir Kurt mit seinen Ideen auch weiterhilft...dummerweise bin ich in SQL eine Null, in VBA hab ich da etwas mehr Peilung...

Cu Chris

Kurt aus Kienitz
25.06.2001, 09:47
Hallo nochmal,

@Arno: Warum soll ich mit den die Nettiquette ansehen, war doch ganz artig ?

@Chris: Wenn es den mehrere Datensätze sein sollen, dann probier mal folgendes.

Lege eine zusätzlich Tabelle an (z.B. MyHelper) in der es nur eine Spalte gibt (TeilStringNr, Zahl, Long Integer).
Dort gibst Du z.B. drei Zeilen ein (0, 1, 2).

Nun erstellst Du eine Abfrage in der Du die Tabellen "Werkstoffe" und "MyHelper" hinzufügst, ohne diese miteinander zu verknüpfen.
Daß führst schonmal dazu, daß Du jede Zeile aus Werkstoffe dreimal in der Ergebnismenge hast.

Mit folgendem SQL-Statement kannst Du dann die Beschreibung in 70er Schritten zerlegen:

SELECT Werkstoffe.ID, Werkstoffe.Kurzname,
Mid$(Werkstoffe.Beschreibung,1+(MyHelper.TeilStringNr*70),70) AS Beschreibung,
MyHelper.TeilStringNr
FROM Werkstoffe, MyHelper;

Du kannst auch die TeilStringNr als Referenz benutzen um eine spezielle Zerlegung zu machen.
Daß würde dann so aussehen:

SELECT Werkstoffe.ID, Werkstoffe.Kurzname,
iif(MyHelper.TeilStringNr=0,Mid$(Werkstoffe.Beschreibung,1,70),
iif(MyHelper.TeilStringNr=1,Mid$(Werkstoffe.Beschreibung,71,30),
Mid$(Werkstoffe.Beschreibung,100,155))) AS Beschreibung, MyHelper.TeilStringNr
FROM Werkstoffe, MyHelper;


P.S.
Wenn Du mal deine E-Mail-Adresse bekannt gibst, kann ich dir meine Test-DB zumailen ;)

A.S.
25.06.2001, 09:59
Hallo Kurt,

das unter dem '--------------------' steht in meiner Signatur und ist auf niemand speziellen gemünzt. Wer sich den Schuh anzieht, dem passt er :)

Gruß

Arno

Chris
25.06.2001, 10:25
@Kurt Big THX

meine E-mail Addi ist
c.hoppe@gmx.net

Cu Chris