Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Ciao Matteo,
non conosco il contenuto del tuo file quindi verificheremo insieme quello che ti scrivo.
Immaginiamo che le 4 tabelle esistano e che tu le voglia ricoprire con una nuova importazione:
Option Compare Database
Option Explicit
Function ImportaFile()
Dim Db As Database
Dim Rs1 As Recordset
Dim Rs2 As Recordset
Dim wId As String
Dim ind As Integer
Dim wStart As Integer
Dim wPos As Integer
Set Db = CurrentDb
' Valuta tu se eliminare il contenuto preesistente delle tabelle
DoCmd.SetWarnings False
DoCmd.RunSQL ("Delete * From Tbl11")
DoCmd.RunSQL ("Delete * From Tbl21")
DoCmd.RunSQL ("Delete * From Tbl31")
DoCmd.RunSQL ("Delete * From Tbl41")
DoCmd.SetWarnings True
Set Rs1 = Db.OpenRecordset("Select * From tblInput") ' File in Input
Rs1.MoveFirst
Do While Not Rs1.EOF
wId = Left(Rs1("Campo1"), 2)
If wId = "11" Or _
wId = "21" Or _
wId = "31" Or _
wId = "41" Then
Rs1.MoveNext ' primo record da importare
Do While wId = Left(Rs1("Campo1"), 2)
Set Rs2 = Db.OpenRecordset("Select * From Tbl" & wId) ' Tabella output
Rs2.AddNew
wStart = 1
wPos = InStr(wStart, Rs1("Campo1"), ";")
ind = 0
Do While wPos > 0
Rs2(ind) = Mid(wStart, wPos - 1)
wStart = wPos + 1
wPos = InStr(wStart, Rs1("Campo1"), ";")
ind = ind + 1
Loop
Rs2(ind) = Mid(wStart, Len(Rs1("Campo1")) - 1)
Rs2.Update
Rs1.MoveNext
Loop
End If
Rs1.MoveNext
Loop
End Function
Ovviamente non ho avuto modo per provarlo ma solo compilarlo :-)
Dò per scontato che i caratteri che identificano il file (11 21 31 41 ) siano ripetuti su tutti i record di ciascun file.
Ciao a domani
Mimmo