Я создал код для импорта данных из Excel в нужную таблицу, через TransferSheet и построил метод запроса. Я также пытаюсь разрешить все ошибки, которые пользователь мог бы сделать при импорте данных в db (неправильный формат файла, добавление 0 строк, имена полей не такие же, как в DB и т. Д.), Но не может избавиться от Error 3059 «не удалось добавить все данные в таблицу "- Это происходит при попытке импортировать некоторые недопустимые данные. Я хочу настроить Msgbox для этой ошибки и прекратить выполнение моего запроса. Вот мой код - короче:Доступ - пользовательский «не смог добавить все данные в таблицу»?
Private Sub CmdImport_Click()
Dim SQL As String
Dim dbs As DAO.Database
Set dbs = CurrentDb
On Error GoTo ERR1
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "NEWTABLE", "<Imported file>", True
SQL = " INSERT INTO MyTable (Field1)" & _
" SELECT DISTINCT" & _
" FROM NEWTABLE"
DoCmd.SetWarnings False
dbs.Execute SQL
DoCmd.RunSQL "DELETE * FROM NEWTABLE"
DoCmd.SetWarnings True
ERR1:
If Err.Number = 3059 Then
MsgBox "This file doesn't have proper data to import. Import canceled !"
Exit Sub
End If
End Sub
Этот код всплывает пользовательский MsgBox после Access Allready открывает встроенный в окно, независимо от DoCmd.SetWarnings False
. Если я переведу DoCmd.SetWarnings False
перед методом TransferSheet, импорт будет выполнен, и Msgbox не будет отображаться - что неправильно. Как я могу справиться с этой ошибкой, кто-нибудь знает?
Похоже, это один жесткий рок , Все еще не нашел ничего, что могло бы сработать. – LuckyLuke82