Вычисляемые столбцы в Access 2003 имеют нулевое значение при вставке в новую таблицу - PullRequest
0 голосов
/ 07 января 2011

У меня есть запрос на создание таблицы, где вычисляются некоторые столбцы.Пример того, как выглядит один из этих столбцов:

SQFTCost: (([SUPPLY_MASTER]![LAST_COST]+[SUPPLY_MASTER]![FREIGHT_COST])/[SUPPLY_MASTER]![SQFT_PER_CTN])

В этом случае LAST_COST - это десятичное число с точностью до 9 и шкалой 3. FREIGHT_COST - это десятичное число с точностью до8 и шкала 3, а SQFT_PER_CTN - десятичное число с точностью до 7 и шкалой 3.

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

Однако, если я изменю запрос на запрос SELECT, все будет хорошо.Значения верны.

Кто-нибудь знает, что можно сделать, чтобы это исправить?Я использую Access 2003.

Ответы [ 2 ]

3 голосов
/ 07 января 2011

Всего несколько предложений:

  1. Попробуйте добавить cLng () или что-то эквивалентное перед вашими выражениями, чтобы заставить четко определенный тип данных
  2. Я избегаю запросов Make Table, предпочитаю добавлять запросы. Просто сделайте таблицу шаблонов правильно настроенной и используйте копию с запросами на добавление. Это единственный способ получить чистый дизайн.
0 голосов
/ 07 января 2011

Я нашел правильный ответ на этот вопрос.Это результат порочного драйвера ODBC, который мы здесь используем.Наши данные хранятся в файлах COBOL в формате Vision .Проблема возникает из-за использования полей, которые определены в xfds как REDEFINES других полей в файле.Использование исходного поля устраняет проблему.

...