2012-09-03 31 views
0

这在Access中起作用。我知道你不能在ASP/VB Script中使用NZ功能。如何让我的语句在ASP/VB脚本中工作

有谁知道我可以如何使这个SQL语句在我的ASP页面使用VBSCIPT工作。

BatterGames = rsBatQual("TotalPA") 
DIM rsBatterLU, sqlBatterLU 

sqlBatterLU = "SELECT games FROM tblLookupPSBatters " 
sqlBatterLU = sqlBatterLU & "WHERE ((('" & BatterGames & "') Between Nz([minVal],-999999) And Nz([maxVal],999999)));" 

set rsBatterLU = Server.CreateObject ("ADODB.RecordSet") 
rsBatterLU.Open sqlBatterLU,conn 

感谢

+2

见@Maarten答案。这与ASP/vbScript无关,与您使用的SQL的风格无关。你在访问什么类型的数据库? –

回答

1

你不说你的存储是什么,你的ASP页面使用。如果是SQL Server,则可以使用ISNULL函数。

BatterGames = rsBatQual("TotalPA") 
DIM rsBatterLU, sqlBatterLU 

sqlBatterLU = "SELECT games FROM tblLookupPSBatters " 
sqlBatterLU = sqlBatterLU & "WHERE ((('" & BatterGames & "') Between ISNULL([minVal],-999999) And ISNULL([maxVal],999999)));" 

set rsBatterLU = Server.CreateObject ("ADODB.RecordSet") 
rsBatterLU.Open sqlBatterLU,conn 
+0

我很抱歉,我正在使用Access。我收到以下错误 - Microsoft JET数据库引擎错误'80040e14' 表达式中未定义函数'Nz'。 – ryzerman

2

在MS Access和VBA中可用的Nz等功能不能通过OLEDB和ODBC提供程序使用。但是,还有其他选择。我建议使用IIf + IsNull组合。

SELECT games FROM tblLookupPSBatters 
Where Exp Between 
IIf(IsNull([minVal]), -999999, [minVal]) 
And 
IIf(IsNull([maxVal]), 999999, [maxVal]) 

有关此问题的一个有用的文章:http://tutorials.aspfaq.com/8000xxxxx-errors/can-i-use-the-nz-function-without-getting-80040e14-errors.html

+0

谢谢大家的帮助!非常感谢 – ryzerman

相关问题