我的Access表已链接到SQL Server。我创建了链接视图,在该视图中我将nz() function
替换为COALESCE function
。但是,我不确定是否也必须将nz function
中的COALESCE
转换为VBA
。
例如以下代码:
rst.Open "SELECT * FROM table1", CurrentProject.Connection, adOpenStatic, adLockReadOnl
y
我有
IF NZ('Field1',0) =0 then
//do something
我应该做
IF COALESCE('Field1',0) =0 then
//do something
还是只需要在SQL查询中更改它?
答案 0 :(得分:1)
Coalesce
是一项仅在T-SQL
中可用的功能,它不是 VBA功能。
由您决定如何处理将null转换为新值的方法,有很多方法可以实现。您可以在将变量添加到SQL语句之前检查变量,也可以使用Coalesce
,IsNull
或Case
将变量作为SQL的一部分进行更改。
就我个人而言,我会做任何更少的代码,而这些代码仍然可以使想法清晰地传达出来。我想这将根据您的情况逐案决定。
答案 1 :(得分:0)
我会坚持使用Access中的NZ()函数,如果要在SQL Server端处理此问题,那么在将其拉入Access之前,这是另一种选择。在SQL Server中,COALESCE()函数返回列表中的第一个非空值。