Изменение типа данных при импорте файла Excel в Access

StackOverflow https://stackoverflow.com/questions/122422

  •  02-07-2019
  •  | 
  •  

Вопрос

Есть ли способ изменить тип данных по умолчанию при импорте файла Excel в Access?(Кстати, я использую Access 2003).

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

РЕДАКТИРОВАТЬ: Чтобы внести ясность: я понимаю, что в процессе импорта есть этап, на котором вам разрешено изменить тип данных импортируемого столбца.

Собственно, об этом я и спрашиваю.По какой-то причине - может быть, это всегда файлы Excel, может быть, есть что-то еще - мне иногда не разрешается изменить тип данных:раскрывающийся список неактивен, и мне просто приходится жить с тем типом данных, который Access считает правильным.

Например, я только что попробовал импортировать большой файл Excel (12000+ строк, ~200 столбцов) в Access, где столбец № 105 (или что-то подобное) был заполнен в основном числами (коды: 1=foo, 2=bar, и т. д.), хотя там также есть несколько альфа-кодов (A=boo, B=far и т. д.).Access предположил, что это Number тип данных (даже после того, как я изменил Format значение в самом файле Excel), и поэтому выдало мне ошибки в этих альфа-кодах.Если бы мне разрешили изменить тип данных при импорте, это избавило бы меня от некоторых проблем.

Я прошу что-то, чего Access просто не делает, или я что-то упускаю?Спасибо.

РЕДАКТИРОВАТЬ: Ниже приведены два ответа, которые дают полезные советы.Сохранение файла Excel в формате CSV, а затем импортирование работает хорошо и просто, например Крис О.К. говорит.Совет по сохранению спецификации импорта также очень полезен.Тем не менее, я выбрал ответ на настройку реестра, ДК как «Принятый ответ».Мне понравился этот ответ, потому что это одноразовый шаг это можно использовать для решения моей основной проблемы (неправильное назначение типа данных Access).Короче говоря, это решение не позволяет мне изменить тип данных самостоятельно, но позволяет Access точно угадать тип данных, чтобы было меньше проблем.

Это было полезно?

Решение

Этот может быть вызвано настройками драйвера Excel Jet по умолчанию.Проверьте следующий раздел реестра и измените его значение с 8 по умолчанию на 0, что означает «угадать тип данных столбца на основе всех значений, а не только первых 8 строк».

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]
"TypeGuessRows"=dword:00000000

Скажите, пожалуйста, работает ли это.

Другие советы

Есть несколько способов сделать это.Самый простой способ — преобразовать файл .xls в файл .csv в Excel, чтобы можно было импортировать в Access с помощью мастера импорта текста, который позволяет выбирать типы данных для каждого столбца во время импорта.

Другим преимуществом этого является то, что импорт файла csv (или текстового) так намного быстрее, чем импорт файла xls.Если вы собираетесь выполнять этот импорт несколько раз, сохраните настройки импорта как спецификацию импорта.(В мастере импорта текста нажмите кнопку «Дополнительно...» в левом нижнем углу, затем нажмите «Сохранить как» и укажите имя спецификации, чтобы сохранить только что внесенные изменения.)

Access может делать то, что вам нужно, но для этого нет простого способа.Вам придется управлять некоторыми наборами записей: один из них — ваши данные Excel, другой — ваша окончательная таблица Access.Когда оба набора записей открыты, вы можете перенести данные из одного набора записей в другой, просматривая данные Excel и добавляя их в таблицу Access.На этом этапе можно будет изменить тип данных по запросу.

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

Access позволит вам указать тип данных в процессе импорта.проблема заключается в процессе «Добавить» в следующих случаях: он не будет запрашивать импорт в тип данных и забудет, что вы его изменили.Я думаю, что это ошибка MS Access.

Доступ сделает это.

В процессе импорта вы можете определить тип данных каждого столбца.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top