0

这适用于 Access。我了解您不能将 NZ 函数与 ASP/VB 脚本一起使用。

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

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  

谢谢

4

2 回答 2

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

于 2012-09-04T02:44:46.817 回答
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  
于 2012-09-03T05:21:04.087 回答