РЕДАКТИРОВАТЬ: изменено, поскольку у меня другая проблема с тем же кодом
2-е редактирование: добавление дополнительного кода, который, кажется, вызывает проблему
Я создал программу VBA в доступеагрегирует данные из ряда внешних источников и записывает результаты в новую таблицу.В идеале, когда я запускаю программу, я хочу стереть все данные, которые в данный момент находятся в таблице, и заменить их новыми данными.В настоящее время я удаляю все данные в таблице ... затем записываю свои новые данные
Вот код для справки
Function getTestFixtures(FixtureName As String) As Recordset
Dim db As Database
Set db = OpenDatabase(GetDBPath & "TestFixtures.xlsx", False, False, "Excel 12.0;HDR=Yes;")
If db Is Nothing Then
MsgBox "Can't find the file!", vbExclamation, ThisWorkbook.Name
Exit Function
End If
Set getTestFixtures = db.OpenRecordset("Select * from [" & FixtureName & "$]")
End Function
Созданный выше набор записей модифицируется, и выводданные помещаются в словарь и передаются этой функции.
Sub Write_OTDC_Data(POlist As Dictionary)
Dim Rst As Recordset
DoCmd.SetWarnings False
DoCmd.runsql "Delete * from [OTDC Results]"
DoCmd.SetWarnings True
Set Rst = CurrentDb.OpenRecordset("OTDC Results")
With Rst
For Each key In POlist.Keys
.AddNew
For i = 0 To 9
.Fields(i).value = POlist(key)(i)
Next
.Update
Next
.Close
End With
End Sub
Моя проблема в том, что я получаю следующую ошибку, если пытаюсь что-либо изменить после выполнения обеих вышеуказанных процедур.
Запуск в автономном режиме не приводит к ошибке.