Изменить тип данных при импорте файла Excel в Access - PullRequest
5 голосов
/ 23 сентября 2008

Есть ли способ изменить тип данных по умолчанию при импорте файла 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, а затем импорт, который работает хорошо и просто, как говорит Chris OC . Советы по сохранению спецификации импорта также очень полезны. Тем не менее, я выбрал ответ настройки реестра DK как «Принятый ответ». Мне понравился ответ, потому что это одноразовый шаг , который можно использовать для решения моей основной проблемы (при неправильном назначении Access типом данных). Короче говоря, это решение не позволяет мне самостоятельно изменять тип данных, но позволяет Access точно угадать тип данных, чтобы избежать проблем.

Ответы [ 6 ]

3 голосов
/ 23 сентября 2008

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

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

2 голосов
/ 23 сентября 2008

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

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

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

0 голосов
/ 02 мая 2018

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

0 голосов
/ 24 сентября 2008

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

0 голосов
/ 23 сентября 2008

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

0 голосов
/ 23 сентября 2008

Access сделает это.

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

...