Set f = Application.FileDialog(3)
f.AllowMultiSelect = True
f.InitialFileName = "S:\Formware\outfile\ucppt12\Storage"
f.Filters.Clear
f.Filters.Add " Armored TXT Files", "*.asc"
If f.Show Then
For Each varItem In f.SelectedItems
strFile = Dir(varItem)
strFolder = Left(varItem, Len(varItem) - Len(strFile))
P = strFolder & strFile
DoCmd.TransferText acImportDelim, "UCPP Import Specification", "ucppltr", P, False
Next
End If
strUpdate = "PARAMETERS fileName Text;" & vbCrLf & _
"UPDATE ucppltr" & vbCrLf & _
"Set [File Name] = fileName"
Debug.Print strUpdate
Set db = CurrentDb
Set qdf = db.CreateQueryDef("", strUpdate)
'Pass file list to query
qdf.Parameters("fileName") = strFile
qdf.Execute dbFailOnError
Set qdf = Nothing
Set db = Nothing
Set f = Nothing
ご覧のとおり、通常、一度に約 5 ~ 6 個のテキスト ファイルをインポートしていますMultiSelect
。ファイル名のフィールドがあり、レコードのインポート元のファイルに基づいて入力したいと考えています。これまでのところ、最初の 4 つまたは 5 つだけを最後のファイル名で上書きし、すべてのレコードに同じファイル名を付けています。インポート時にフィールドにデータを入力するTransferText
方法や、その他の方法があるかどうかはわかりません。