импорт данных Excel в доступ - PullRequest
2 голосов
/ 06 октября 2009

Мое приложение VB.NET использует импорт листа Excel в доступ

command.CommandText = "SELECT * INTO [MS Access;Database=" & current_db & "].[" & sheet_name & "] FROM [" & sheet_name & "$]"

Проблема в том, что если у меня есть несколько ячеек с зеленым сообщением об ошибке в Excel, они не импортируются при доступе. И они на самом деле в том же формате, что и у них нет лидирующих символов, но они говорят, что число отформатировано как текст.

Самый простой выход - просто исправить это в Excel, но часто пользователи забывают это сделать, и данные пропускаются.

Как заставить соединение импортировать указанный столбец как номер?

Ответы [ 3 ]

5 голосов
/ 06 октября 2009

Я бы сделал это

  1. В Access определите структуру таблицы (назовите ее YourNewStagingTable), в которую вы хотите импортировать (не делайте эту таблицу окончательной - это чисто промежуточная таблица (я обычно определяю все поля как TEXT)
  2. использование INSERT INTO YourNewStagingTable SELECT Columns FROM SpreadsheetPath
  3. Запустите все ваши исправления и проверки данных в этой таблице
  4. Переместить данные из YourNewStagingTable в FinalDataTable

Если вы по-прежнему сталкиваетесь с проблемами перевода типов данных, вам придется изменить сопоставления ISAM для файла.

0 голосов
/ 06 октября 2009

Я не думаю, что есть способ указать ODBC для движка Excel принудительно заставить столбец в тип данных. Он только смотрит на первые 7 строк и принимает «разумное» решение относительно того, какой тип данных для этого столбца. Когда я выполнял массовые миграции, у меня был код, «принудительно» вводящий данные в правильный тип данных, выполняя трюки, подобные описанным выше, а затем выполнял команду вставки. Но похоже, что это всегда является альтернативой. Короче говоря, вы должны массировать данные, прежде чем положить их в таблицу.

0 голосов
/ 06 октября 2009

Вы также можете импортировать данные Excel в MS-Access путем копирования и вставки. Возможно, это может быть лучшим решением, если для обработки требуется меньше данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...