Когда изменить функцию nz () на функцию COALESCE? - PullRequest
0 голосов
/ 03 января 2019

Моя таблица доступа связана с сервером SQL. Я создал связанный вид, где я заменил nz() function на COALESCE function. Однако я не уверен, что мне нужно конвертировать nz function в COALESCE в VBA.

Например, для кода ниже:

rst.Open "SELECT * FROM table1", CurrentProject.Connection, adOpenStatic, adLockReadOnl у

У меня есть

IF NZ('Field1',0) =0 then 

//do something

Должен ли я сделать

IF COALESCE('Field1',0) =0 then 

//do something

Или мне нужно только изменить его в моем запросе SQL?

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Я бы придерживался функции NZ () в Access, и если вы хотите обработать это на стороне SQL Server, перед тем как включить его в Access, это еще один вариант.В SQL Server функция COALESCE () возвращает первое ненулевое значение в списке.

0 голосов
/ 03 января 2019

Coalesce - это функция, доступная только в T-SQL, - не функция VBA.

Вам решать, как вы хотите обработать преобразование нулей в новое значение, есть много способов сделать это. Вы можете проверить свои переменные перед добавлением их в оператор SQL или изменить их как часть SQL с помощью Coalesce, IsNull или Case.

Лично я бы сделал все, что меньше кода, который все еще ясно дает представление. Я полагаю, что это будет решаться в каждом конкретном случае в зависимости от того, что вы делаете.

...