2012-09-03 44 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

相關問題