Access - Mördertabelle

Hallo zusammen,

ich habe eine Excel-Tabelle mit 1.860 Zeilen und 120 Spalten (so krieg ich den Mist geliefert!) Jetzt muss ich daraus eine Tabelle machen, bei der JEDE ZEILE mit JEDER SPALTE kombiniert werden soll!!

Die Spaltenköpfe haben natürlich immer andere Bezeichnungen.

Hier das Beispiel:

_______Segment___PZN1000___PZN2000___PZN3000 usw.
Zeile 1___15000_____500,00_____34,00_____198,00
Zeile 2___16000_____234,00____128,00______15,00
usw.

Wichtig ist dabei, dass die Kombination ZEILE/SPALTE nachprüfbar richtig ist!

Dann sollte in etwa so eine Tabelle rauskommen:

_______PZN_____Segment_____Wert von Segment/PZN
Zeile 1___1000_____15000____________500,00
Zeile 2___1000_____16000____________234,00


Zeile ?___2000_____15000_____________34,00
Zeile ?___2000_____16000____________128,00

usw.

Das gibt dann zum Schluss eine Tabelle mit 204.600 Datensätzen.

Mit manuellen Aktualisierungs- und AnfügeAbfragen krieg ich das schon hin, aber bei 110 PZN (also 110-mal die Aktualisierungs- und Anfügeabfrage ändern) ist das schon eine Mörderaufgabe.

Ich habs dann mal mit einer Funktion versucht, aber irgendwie klappt das nicht …

Kann mir hierbei jemand helfen?

Einen dicken Kuss schon mal im voraus …

Andreas

Mußt Du die Tabelle mit den fertigen Daten vorhalten? Ich würde die Daten immer bei Bedarf aus den 1860 Datensätzen zusammenstellen (soweit das geht).

pp

Importiere zunächst die Excel-Mördertabelle nach Access (mit Feldnamen).
Lege die neue Access-Tabelle an (Segment, PZN, PZNWert ==>alles Zahl/Double).

Bei mir heißen die: „TabelleAlt“ (die von Excel importierte) und „TabelleNeu“ (die in Access neu angelegte).

Dann folgendes Modul starten, welches Dir Deine neue Tabelle zusammenschraubt. Die müßtest Du Dir wahrscheinlich wohl nur noch nach „PZN“ sortieren (Bei Bedarf kann ich Dir die DB ja zumailen)

Function PZN_Ummodeln()
Dim db As Database
Dim RS_Alt As Recordset
'die nach Access importierte Excel-Tabelle mit Spaltennamen
Dim RS_Neu As Recordset
'die neue, aber zuvor angelegte Access-Tabelle
Dim i As Integer
Dim PZN_Spalte As String 'Spaltennamen auslesen
Dim PZN_Wert As Long 'der Zahlstring aus dem alten Feldnamen

Set db = Application.CurrentDb
Set RS_Alt = db.OpenRecordset(„TabelleAlt“)
Set RS_Neu = db.OpenRecordset(„TabelleNeu“)
i = 1

RS_Alt.MoveFirst
Do While Not RS_Alt.EOF

For i = 1 To 110 'wenns denn 110 Spalten sind - ggfls. ändern

PZN_Spalte = RS_Alt.Fields(i).Name
PZN_Spalte = Mid(PZN_Spalte, 4)
'4: konstante Feldnamen vorausgesetzt,PZNxxxxx,ABCxxxx etc.

PZN_Wert = Val(PZN_Spalte)
RS_Neu.AddNew
RS_Neu(„PZN“) = PZN_Wert
RS_Neu(„Segment“) = RS_Alt.Fields(„Segment“)
RS_Neu(„PZNWert“) = RS_Alt.Fields(i)
RS_Neu.Update
Next i
RS_Alt.MoveNext
Loop
End Function

Mußt Du die Tabelle mit den fertigen Daten vorhalten? Ich
würde die Daten immer bei Bedarf aus den 1860 Datensätzen
zusammenstellen (soweit das geht).

pp

Hallo Peter, danke für Deine Antwort …

Aber ich muss diese Tabelle monatlich zusammenstellen, da hab ich mit der manuellen Methode mindestens 3 volle Arbeitstage zu tun - abgesehen von den Kosten, die ich der anfordernden Abteilung in Rechnung stellen müsste, wird mein Maus-Arm dadurch bestimmt nicht ausheilen :-{

Ich probier mal die Lösung von Stefan aus (hast Du bestimmt auch gelesen).

Den Voraus-Kuss kannste trotzdem behalten, einen zweiten gibt´s nicht (den gibt´s ab jetzt nur noch für die weiblichen Antworter? Antwortinnen?

By the way - ich find´s schade, dass sich hier sowenig Frauen im W-W-W tummeln - oder kommt´s mir nur so vor?

gruss Andreas

Importiere zunächst die Excel-Mördertabelle nach Access (mit
Feldnamen).

Hallo Stephan,

danke schon mal für Deinen Tip, ich werde ihn am Montag gleich ausprobieren.

Falls das klappt, melde ich mich nochmal (falls nicht, auch)

gruss Andreas STEPHAN Scholz (im Ernst!)