Extreme Veteran
Beiträge: 573
| Hi,
twk1 - 19.12.15 01:48
die Datei kann eine Kopfzeile haben oder nicht (das ist aber kein Problem, das kann ich dann ausfiltern.
die Datei ist nicht immer gleich
Ok, dann solltest du so vorgehen koennen:
1. Temp-Tabelle anlegen, in der Feldname und Position in der zu importierenden Datei hinterlegt werden.
2. Per VBA die Temp-Tabelle auslesen und das SQL-Statement dynamisch aufbauen und ausfuehren.
Beispiel (Luftcode):
Dim strSQL As String
Dim Db As DAO.Database
Dim Rst As DAO.Recordset
Dim strInsert As String
Dim strSelect As String
DoCmd.TransferText acLinkDelim, "ImportSpec", "DeineCSV", "C:\Pfad\Textdatei.csv", False
Set Db = CurrentDb
strSQL = "SELECT Position, Feldname FROM TempTabelle ORDER BY Position"
Set Rst = Db.OpenRecordset(strSQL, dbOpenDynaset)
Do While Not Rst.EOF
strInsert = ", [" & Rst.Fields("FeldName").Value & "]"
strSelect = ", Feld" & Rst.Fields("Position").Value
Rst.MoveNext
Loop
Rst.Close
Set Rst=Nothing
strSQL = "INSERT INTO Zieltabelle ( " & Mid(strInsert, 2) & " ) "
strSQL = strSQL & " SELECT " & Mid(strSelect, 2) &" FROM DeineCSV "
Db.Execute strSQL, dbFailOnError
----- Gruss - Peter |