Neuigkeiten:

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

Mobiles Hauptmenü

Tabelle / Spalte aufteilen

Begonnen von Mjay, Januar 03, 2011, 11:04:49

⏪ vorheriges - nächstes ⏩

Mjay

Hallo Forumuser,

das neue Jahr beginnt mit Gedächtnisschwund.
Ich brauche Hilfe bei einer Tabelle wo in einer Spalte Werte mit ';' getrennt hinterlegt sind.
Ich benötige aber pro Datensatz jewalls nur einen Wert aus der Spalte.

Zum besseren Verständnis, hab ich eine XLS-Datei beigefügt wie es ausschaut und ausschauen soll.

Hat jemand eine Idee wie ich das am schnellsten umsetzen kann das ich 10000 solcher Datensätze umstellen muß.

Danke im Voraus
MJay

[Anhang gelöscht durch Administrator]

edgar.basler

1.) Tabelle als "*.txt" exportieren.
2.) Tabelle "*.txt" importieren und dort angeben, daß die Felder durch "Semikolon" getrennt sind.

Probieren müßte aber gehen.

Mjay

Hallo,

dabei wird jeder Wert in eine Neue Spalte geteilt, ich brauche aber die Aufteilung als neuen Datensatz.

DF6GL

Hallo,

wieso "beginnt"?   ;) ;D ;D

Es ist vergessen (worden) , die Tabellen zu normalisieren...

Mit Aufteilen entspr. dem Beispiel wird das Ganze nur noch verschlimmert.

Ich rate, erst das Tabellenkonzept insgesamt(!) entsprechend der Normalalisierungsregeln neu zu definieren und dann die vorhanden Daten passend zu verschieben..


(Wenn Du das aber nicht hören willst, sondern lieber den Holzweg einschlagen willst, findest Du in einem anderen Thread von heute eine (fast) passende Funktion, die das erledigen könnte.


http://www.access-o-mania.de/forum/index.php?topic=13581.0




Mjay

Hallo Franz,

die Function

Function splitAndJoinTest(Memodaten As String)
Dim aStrWithoutDimension As Variant, i As Long
    aStrWithoutDimension = Split(Expression:=Memodaten, delimiter:=",")
    For i = LBound(aStrWithoutDimension) To UBound(aStrWithoutDimension)
        ' hier in andere Tabelle schreiben
           Currentdb.Execute "Insert into tblAndereTabelle (Ort) Values ('" & aStrWithoutDimension(i) & "'")

    Next i
End Function


reicht mir völlig zu.
Trotzem bekomme ich 'Insert into' nicht hin das mir alle Spalten und nicht nur der (Ort) in die andere Tabelle geschrieben wird.

Danke für deine Hilfe

DF6GL

Hallo,

es müssen ALLE Felder aus der Ursprungstabelle in der Argumentenliste der Funktion stehen, damit die beim Aufruf übergeben und im Insert-Statement benutzt werden können.


Function splitAndJoinTest(lngID as Long ,lngOption0 as long,lngOption1 as long,.....  strOption_2_1 As String.....)
Dim aStrWithoutDimension As Variant, i As Long
    aStrWithoutDimension = Split(Expression:=strOption_2_1, delimiter:=",")
    For i = LBound(aStrWithoutDimension) To UBound(aStrWithoutDimension)
        ' hier in andere Tabelle schreiben
           Currentdb.Execute "Insert into tblAndereTabelle ([ID],[Option 0],[Option 1].......  [Option_2_1],.......) Values (" & lngID & "," & lngOption0 & "'" & lngOption1 & ",'" aStrWithoutDimension(i) & "'," &    ......    )

    Next i
End Function



btw:   KEINE Leer/Sonderzeichen und KEINE reservierten Wörter in/für Namen benutzen...