2016-01-25 13 views
0

Я пытаюсь импортировать данные из таблицы Excel в таблицу доступа. Я пытаюсь автоматизировать процедуру манипулирования данными. Поэтому я могу прочитать данные для доступа по этому коду:Импорт листа Excel в Access

Private Sub ctlOpen_Click() 
    Set f = Application.FileDialog(3) 
    f.AllowMultiSelect = False 

    If f.Show Then 
    strExcelPath = f.SelectedItems(1) 
    End If 
    Call DoCmd.TransferSpreadsheet(acImport, _ 
    acSpreadsheetTypeExcel8, "InitialTable", strExcelPath, _ 
    True) 
End Sub 

Но я получаю сообщение об ошибке. Он создает другую таблицу с ошибками импорта с указанием «Ошибка преобразования типа», за которой следует имя столбца и номер строки.

Проблема в том, что на моем листе excel есть столбец, который называется ETA, и у него есть дата. Большинство полей в столбце будут содержать месяц/дату ('1/20' или 1/17 '), но некоторые поля имеют такие коды, как «BAD» или «CP». Часть моих манипуляций с данными меняет все, что является «ПЛОХОЙ», до одной недели с сегодняшнего дня, и другая формула для «CP».

Итак, мой вопрос: есть ли способ, чтобы все было прочитано как строка в DoCmd.TransferSpreadsheet() или любой другой альтернативе?

+0

Я нахожусь неясным, почему вы не выполняете свое «манипулирования данного 'перед импортом. – Jeeped

+0

@Jeeped Большинство других необходимых материалов уже находится в форме доступа. Я пытаюсь создать еще одну кнопку, в которой пользователь указывает на файл excel, а затем будет экспортировать форматированные данные в таблицу доступа. В моем исходном коду кода есть таблица temp. – USER420

+1

И вот втирает! Классическое различие между таблицей и базой данных. В электронной таблице вы можете ввести любую строку string/date/boolean/number в столбце. Базы данных будут наказывать вас, если вы не придерживаетесь типа данных столбца. Доступ к полям datetime требуется каждый сегмент день, месяц и год: 'MM/DD/YYYY' или' DD/MM/YYYY' (в зависимости от вашей локали). Если время ('HH: MM: SS') опущено, полуноча считается' 00: 00: 00'. – Parfait

ответ

2

Вы можете вручную импортировать таблицу со всеми столбцами, как строки и сохранить импорт и вызвать из кода, как DoCmd.RunSavedImportExport «Ваше имя импорта»

Смежные вопросы