У меня есть макрос Excel VBA, который обновляет значение поля конкретной записи MDB в 2010 году.
Я только что обновился до Excel16 и получаю, что компонент ActiveX не может создать объектную ошибку с некогда функциональным кодом.
это ошибки на Set Db = OpenDatabase(MDBPath)
вот полный код:
Sub UpdateAccess()
MDBPath = Sheets("Setup").Range("E19").Value
TabName = Sheets("Setup").Range("E20").Value
Set Db = OpenDatabase(MDBPath)
Set rs = Db.OpenRecordset(TabName, dbOpenTable)
With Sheets("Batches")
lRow = .Cells(Rows.Count, 1).End(xlUp).Row
End With
BatchNameColumn = Sheets("references").Range("G22").Value
BatchDEColumn = Sheets("references").Range("G28").Value
i = 1
Do While i < lRow
i = i + 1
BatchName = Sheets("BatchesForLabels").Range(BatchNameColumn & i).Value
With rs
rs.MoveFirst
While Not rs.EOF
If rs.Fields("Name").Value = BatchName Then
rs.Edit
rs.Fields("ActualDE").Value = Round(Sheets("BatchesForLabels").Range(BatchDEColumn & i).Value, 2)
rs.Update
rs.MoveNext
Else:
rs.MoveNext
End If
Wend
End With
Loop
rs.Close
Set rs = Nothing
Db.Close
Set Db = Nothing
вот ссылки, которые я включил
Visual Basic For Applications
Microsoft Excel 16.0 Object Library
OLE Automation
Microsoft Office 16.0 Object Library
Microsoft ADO Ext. 2.8 for DDL and Security
Microsoft ActiveX Data Objects 2.8 Library
Microsoft Windows Common Controls - 26.0 (sp6)
Microsoft Forms 2.0 Object Library
Microsoft DAO 3.6 Object Library
Это проблема справочной библиотеки или мне нужна другая стратегия для обновления записей MDB в этой новой среде?
Это приложение на рабочем месте, и я не могу в данный момент точно контролировать различные части установки