Namen eines Feldes finden, welches einen bestimmten wert enthält
PeterDoering
Gesendet: 20.12.15 12:01
Betreff: RE: Namen eines Feldes finden, welches einen bestimmten wert enthält



Extreme Veteran

Beiträge: 563
5002525
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
Top of the page Bottom of the page