Экспорт данных из Access в Excel без потери начальных нулей - PullRequest
1 голос
/ 02 июля 2010

У меня есть таблица в Access, я экспортирую в Excel, и я использую код VBA для экспорта (потому что я фактически создаю отдельный файл Excel каждый раз, когда изменяется client_id, который создает 150 файлов).К сожалению, я теряю начальные нули, когда я делаю это с помощью DoCmd.TransferSpreadsheet.Я смог решить эту проблему, просматривая записи и записывая каждую ячейку по одной (и форматируя ячейку перед тем, как писать в нее).К сожалению, это приводит к 8 часам работы.Используя DoCmd.TransferSpreadsheet, он запускается через час (но тогда я теряю начальные нули).Можно ли вообще сказать Excel, что нужно просто обрабатывать каждую ячейку как текст при использовании команды TransferSpreadsheet?Кто-нибудь может придумать другой способ сделать это, который не займет 8 часов?Спасибо!

Ответы [ 3 ]

1 голос
/ 02 июля 2010

В качестве альтернативы моему другому предложению, вы играли с помощью команды Excel Внешние данные?Используя Access VBA, вы можете циклически проходить через клиентов, открывать файл шаблона Excel, импортировать данные (т. Е. Извлекать вместо push) с вашим клиентом в качестве критерия и сохранять его с уникальным именем для каждого клиента.

1 голос
/ 21 июля 2010

префикс значения Excel с апострофом ('). Апостроф говорит Excel, чтобы обрабатывать данные как «текст».

Как в;

0001 'Excel treats as number and strips leading zeros

становится

'0001 'Excel treats as text

Возможно, вам понадобится создать поле выражения, чтобы поставить перед апострофом поле, как в;

SELECT "'" & [FIELD] FROM [TABLE]
0 голосов
/ 02 июля 2010

Что делать, если вы:

  1. В исходной таблице измените тип столбца на строку.
  2. Прокрутите исходную таблицу и добавьте «x» в поле.

Если данные Excel предназначены для чтения человеком, вы можете проявить творческий подход, например, скрыть столбец данных и добавить столбец «display», который ссылается на столбец данных, но удаляет «x».

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