1

ASPページのバックエンドとしてAccessを使用しています。保存されたクエリを使用しています。テーブルは次のようになります。

  UCall  Zone  Band
    NF4L    2    B160
    NF4L    5    B40
    NF4L    7    NULL
    AB2AB   5    B10

クエリは次のようになります。

Select COUNT(*) as BCnt 
From tblScore 
Where Band IS NOT NULL and UCall=[in_call];

結果は、Bandのエントリがある特定の呼び出しのすべての行のカウントになります。parmは2を返す必要があるため、クエリはNF4Lで実行されます。

クエリはAccess自体で期待どおりに機能しますが、ASPページを実行すると次のようになります。

"Syntax error (missing operator) in query expression 'Band IS NOT NULL and UCall=[in_call]'.

ASPページから:

function GetBandTotals(in_call)
  conn2.BandSummary in_call, BRS
  GetBandTotals = BRS("BCnt")
end function

conn2はadodb接続です

BRSはadodbレコードセットです

in_callがそこに到達していることを確認しました。

4

1 に答える 1

1

Band予約語なので、その名前を角かっこで囲みます。

PARAMETERSまた、パラメータのテキストタイプを予期するようにdbエンジンに通知する句を追加しin_callます。それが役立つかどうかはわかりませんが、害はありません。

PARAMETERS in_call Text ( 255 );
SELECT COUNT(*) AS BCnt 
FROM tblScore 
WHERE [Band] IS NOT NULL AND UCall=[in_call];
于 2013-01-31T16:23:40.607 に答える