Я довольно новичок в использовании VBA. У меня есть база данных доступа, где пользователь нажимает кнопку, и это будет загружать несколько файлов.
Загруженные файлы являются временными таблицами и к ним добавляются поля и т. Д. c. После обновления временных таблиц записи переносятся в постоянную таблицу.
Он загружает сразу несколько файлов, поэтому по мере загрузки файлов в таблицу они вводятся в таблицы с именем 'temp_filename', с каждый файл получает свою собственную таблицу.
Ниже мой код. Для оператора alter table я хочу загрузить временную таблицу, которая была только что создана. Поскольку эта таблица будет называться как-то по-разному каждый раз, когда я пытался присвоить ее переменной. Я попробовал другой синтаксис et c, однако я получаю ошибки. Кто-нибудь может увидеть, где я иду не так? Любая помощь будет оценена.
Public Sub Import()
Dim oFileDiag As Office.FileDialog
Dim path As String: path = ""
Dim oFSO As New FileSystemObject
Dim FileSelected As Variant
Dim FileNameSelected As Variant
Dim UpdatedTableName As Variant
Set oFileDiag = Application.FileDialog(msoFileDialogFilePicker) ''Picks file to import
oFileDiag.AllowMultiSelect = True ''Allows multiple files to be selected
oFileDiag.Title = "Please select the reports to upload"
oFileDiag.Filters.Clear
oFileDiag.Filters.Add "Excel Spreadsheets", "*.xlsx, *.xls" ''Only allows xlsx and xls file types to upload
If oFileDiag.Show Then
For Each FileSelected In oFileDiag.SelectedItems
FileNameSelected = oFSO.GetFileName(FileSelected)
UpdatedTableName = "temp_" & FileNameSelected
If oFileDiag.SelectedItems.Count > 0 Then path = oFileDiag.SelectedItems(1)
If Len(path) > 0 Then
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, UpdatedTableName, path, 1
DoCmd.RunSQL "ALTER TABLE UpdatedTableName ADD COLUMN [Date_of_Report] TEXT(100);"
MsgBox "The " & FileNameSelected & " file has been uploaded"
Else
MsgBox "File not found"
End If
Next
End If