Ответ 1
Перейдите в окно конструктора запросов, переключитесь в режим SQL и попробуйте следующее:
Update Table Set MyField = 0
Where MyField Is Null;
Доступ к MS: как заменить пустые (нулевые) значения на 0 для всех записей?
Я предполагаю, что это нужно сделать с помощью SQL. Я могу использовать Find и Replace для замены 0 пустым, но не наоборот (не будет "найти" пробел, даже если я введу [Ctrl-пробел], который вставляет пробел.
Итак, я думаю, мне нужно делать SQL, где я нахожу нулевые значения для MyField, а затем заменяю все из них на 0.
Перейдите в окно конструктора запросов, переключитесь в режим SQL и попробуйте следующее:
Update Table Set MyField = 0
Where MyField Is Null;
Если вы пытаетесь сделать это с помощью запроса, то вот ваш ответ:
SELECT ISNULL ([поле], 0) FROM [таблица]
Edit
Функция ISNULL использовалась неправильно - эта модифицированная версия использует IIF
SELECT IIF(ISNULL([field]), 0, [field]) FROM [table]
Если вы хотите заменить фактические значения в таблице, вам нужно будет сделать это следующим образом:
UPDATE [table] SET [FIELD] = 0 WHERE [FIELD] IS NULL
UPDATE table SET column=0 WHERE column IS NULL
UPDATE YourTable SET MyField = 0 WHERE MyField IS NULL
работает в большинстве диалектов SQL. Я не использую Access, но вы должны начать.
без 'где и', если...
Update Table Set MyField = Nz(MyField,0)
Следующий запрос также работает, и вам не понадобится запрос на обновление, если вы предпочитаете:
IIF(Column Is Null,0,Column)
Лучшее решение - использовать функцию NZ (от нуля до нуля) во время генерации таблицы = > NZ ([ColumnName]) Он приходит 0, где "null" в столбце ColumnName.
Использование find и replace будет работать, если вы наберете "null" в find и поместите нуль в replace... вы будете предупреждены, что это нельзя отменить.
Я бы изменил приведенный выше оператор SQL на более общий. Использование подстановочных знаков никогда не будет плохой идеей, когда дело доходит до массового населения, чтобы избежать нулей.
Попробуйте следующее:
Update Table Set * = 0 Where * Is Null;
У меня была такая же проблема, и я нашел самое простое решение, которое работает для моих нужд. В свойствах таблицы я установил значение по умолчанию равным 0 для полей, которые я не хочу показывать нулями. Супер легкий.
Я использовал двухэтапный процесс для изменения строк с "пустыми" значениями до "Нулевых" значений в качестве держателей мест.
UPDATE [TableName] SET [TableName].[ColumnName] = "0"
WHERE ((([TableName].[ColumnName])=""));
UPDATE [TableName] SET [TableName].[ColumnName] = "Null"
WHERE ((([TableName].[ColumnName])="0"));