如何使我的语句在ASP / VB脚本中工作

时间:2012-09-03 05:09:22

标签: sql asp-classic vbscript

这适用于Access。我知道你不能在ASP / VB脚本中使用NZ功能。

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

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 个答案:

答案 0 :(得分:2)

通过OLEDB和ODBC提供程序无法使用MS Access和VBA中的几个功能,例如Nz。但是,还有其他选择。我建议使用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

答案 1 :(得分: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