2015-02-02 6 views
1

Для начала я не очень опытный программист в Access. Есть ли способ отключить таблицы ошибок импорта, которые автоматически генерируются при доступе при импорте файлов из Excel?Отключить таблицу ошибок ошибок в доступе Ms

Причина, по которой я хочу это сделать, - это мой файл excel имеет около 4000 строк с данными о разных местоположениях, теперь я должен указать местоположение, в котором я должен делать отчет, правильно импортировать, поэтому я не беспокоюсь о ошибках импорта. Кроме того, он обнаруживает ошибку только в одной строке, и потому, что я импортирую таблицу из кода vba, она будет продолжать генерировать эти таблицы ошибок, и я получаю большой набор из них.

Я провел некоторое исследование, но я нашел ответ о решении проблемы, установив формат файла импорта, но мне не удалось получить ответ о том, как отключить их.

Цените, если кто-нибудь может помочь.

EDIT:

После предложения от @parfait следующего кода сделал трюк. Любые другие предложения также приветствуются.

Sub dropImportError() Dim tbl_name As DAO.TableDef, str As String With CurrentDb For Each tbl_name In .TableDefs str = tbl_name.Name If InStr(str, "ImportErrors") <> 0 Then str = "DROP TABLE «& Обл &» " DoCmd.RunSQL str End If Next End With End Sub

+0

Как вы импорта? Если вы используете VBA с 'DoCmd.TransferSpreadsheet', вы можете автоматизировать код, который ищет таблицы импорта ошибок, используя tablesdefs и удалять их после импорта? Если вы используете мастер на вкладке «Внешние данные» на ленте, на последнем шаге снимите флажок в поле анализа таблицы. – Parfait

+0

@Parfait - Спасибо за быстрый ответ. Поэтому я предполагаю, что в Access нет встроенной опции, чтобы отключить ее. Я просто хотел это знать. Кроме того, спасибо за предложение. Следующий код сделал трюк, но я буду признателен, если вы сможете импровизировать код, если это необходимо, или я отправлю его в качестве ответа. Благодаря – iveedee

+0

Sub dropImportError() Dim tbl_name Как DAO.TableDef, ул As String С CurrentDb Для каждого tbl_name В .TableDefs ул = tbl_name.Name Если InStr (ул, "ImportErrors") <> 0 Тогда ул = "DROP TABLE' "& str &" '" DoCmd.RunSQL str End If Следующий Конец End Sub – iveedee

ответ

3

Просто наткнулся на этот вопрос сам, после выполнения импорта процедуры я сразу же побежал следующий код, который был сохранен в автономном модуле. Просто вставьте функцию DeleteImportErrors в макрос, процедуру или функцию.

код модуля:

Public Function DeleteImportErrors() 
    Dim n As Integer 
    Dim db As DAO.Database 

    Set db = CurrentDb 
    For n = db.TableDefs.Count - 1 To 0 Step -1 
    ' loop through all tables 
     If InStr(1, db.TableDefs(n).Name, "ImportError") > 0 Then 
     ' if table is import errors table 
      DoCmd.DeleteObject acTable, db.TableDefs(n).Name 
      ' delete table 
     End If 
    Next n 
End Function 
Смежные вопросы