Импорт листов Excel в базу данных не работает - PullRequest
0 голосов
/ 17 января 2019

Я переписываю код своей базы данных для импорта в новый бэкэнд моей разделенной базы данных, который при запуске кода работает. но ничего не отображается как новый импорт. Мне интересно, я что-то упустил из своего кода. Он работает нормально, я не получаю никаких ошибок, но ни один из листов Excel не импортируется, когда я запускаю функцию ниже. Любой более простой способ тоже был бы великолепен. В конце, как только таблицы будут созданы, я хочу, чтобы импорт был связан с базой данных переднего плана.

Private Function ImportBackend()
Dim blnHasFieldNames As Boolean, blnEXCEL As Boolean, blnReadOnly As Boolean
Dim lngCount As Long
Dim objExcel As Object, objWorkbook As Object
Dim colWorksheets As Collection
Dim strPathFile As String
Dim strPassword As String
Dim db As DAO.Database

Set db = DBEngine.Workspaces(0).OpenDatabase    ("C:\Users\albroady\Documents\Database\MasterDataCommit1_2018-12-18_be.accdb")
 ' Establish an EXCEL application object
On Error Resume Next
Set objExcel = GetObject(, "Excel.Application")
 If Err.Number <> 0 Then
  'Set objExcel = CreateObject("Excel.Application")
  'blnEXCEL = True
End If
Err.Clear
On Error GoTo 0

' Change this next line to True if the first row in EXCEL worksheet
' has field names
 blnHasFieldNames = True

 ' Replace C:\Filename.xls with the actual path and filename
  strPathFile = "C:\Users\albroady\Documents\Master\Green.xlsx"

 ' Replace passwordtext with the real password;
  'if there is no password, replace it with vbNullString constant
 ' (e.g., strPassword = vbNullString)
strPassword = "vbNullString"

blnReadOnly = True ' open EXCEL file in read-only mode

' Open the EXCEL file and read the worksheet names into a collection
Set colWorksheets = New Collection
Set objWorkbook = objExcel.Workbooks.Open(strPathFile, , blnReadOnly, , _
  strPassword)
For lngCount = 1 To objWorkbook.Worksheets.Count
  colWorksheets.Add objWorkbook.Worksheets(lngCount).Name
Next lngCount

' Close the EXCEL file without saving the file, and clean up the EXCEL objects
objWorkbook.Close False
Set objWorkbook = Nothing
If blnEXCEL = True Then objExcel.Quit
Set objExcel = Nothing

'Import the data from each worksheet into a separate table
 For lngCount = colWorksheets.Count To 1 Step -1
  DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
        "tbl_Update" & colWorksheets(lngCount), strPathFile, blnHasFieldNames, _
        colWorksheets(lngCount) & "$"
Next lngCount
 ' Delete the collection
  Set colWorksheets = Nothing
  Set db = Nothing


  ' Uncomment out the next code step if you want to delete the
  ' EXCEL file after it's been imported
  ' Kill strPathFile 

1 Ответ

0 голосов
/ 31 января 2019

Я понял, что вы на самом деле можете изменить свойства запроса в представлении «Дизайн» и изменить место назначения с Текущего на путь к базе данных бэкэнда

...