Вопрос

При экспорте CSV из Access 2007 он автоматически преобразует десятичные дроби в научную систему счисления.

К сожалению, инструмент, который их получает, обрабатывает эти поля как текст и отображает их как есть.

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

Есть ли какой-нибудь способ отключить автоматическое преобразование в научную нотацию?

То есть.если в запросе он отображается как 0.007, то в выходном csv он будет отображаться как 0.007, а не как 7E3?

Примечание:Я вынужден использовать Excel и Access для этого.Как бы мне ни хотелось переключиться на SQL Server, моя жена была бы недовольна, если бы я поместил его на ее рабочий ноутбук!

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

Решение

Вы могли бы написать небольшой объем кода VBA в access для запроса данных из связанной таблицы или Access query и записать их в текстовый файл, создав таким образом свой собственный файл .CSV и отказавшись от "Мастера".Мне никогда особо не нравился Access' export'wizard, и я просто создал файлы сам.

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

У вас есть пара вариантов:

  • вы можете использовать Format() функция непосредственно в вашем запросе, чтобы принудительно отформатировать данные в оскорбительных столбцах определенным образом, например:

    SELECT ID, Format([Price],"standard") as Pricing FROM ORDERS;
    
  • вы можете написать свою собственную процедуру экспорта CSV в VBA.
    Недавно я опубликовал один из них в качестве ответа на этот вопрос.

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

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