1

次のConnStringを使用してAccessDBに接続しています

Conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=\\server\share\Data\PFWTRAN.MDB"

次のSQLは正常に機能します。

SQLIn =     "SELECT Date, Time " & _
            "FROM Transactions " & _
            "WHERE TokenNumber = " & TokenNo & " " & _
            "AND Date >= " & FromDateG & " " & _
            "AND Direction = -1 " & _               
            "ORDER BY Date, TransactionNumber;"

ただし、Transactions.Exception = 0の行が必要ですが、このAND条件を追加すると、RSを開いたときにスクリプトが失敗します。

error '80004005' /path/.../.../...asp, line 97

AND条件を削除すると、再び機能します。

SELECTセクションに'Exception'を入れようとしても、実行されず、エラーが発生します。

1つのフィールドを含めると、なぜこのようなエラーが発生するのでしょうか。エラーはパーミッションによるものだと読みましたが、SQLはこの1つのフィールドがなくても機能するため、パーミッションは問題ありません。

手がかりはありますか?

これは非常に古いAccess95データベース(またはそれ以前)です。提供されている接続を変更する必要がありますか?

4

1 に答える 1

1

ただし、Transaction.Exception = 0の行が必要ですが、このAND条件を追加すると、RSを開いたときにスクリプトが失敗します。」

ただし、Transaction.Exceptionは、クエリが使用するテーブルとは異なるテーブルを参照します。

FROM Transactions

Date、、TimeおよびException、Accessの問題名と予約語です。それらの名前を角かっこで囲むか、テーブル名/エイリアスをプレフィックスとして付けます。

アプローチを切り替えてパラメータークエリを使用することを検討してください...そして、値をステートメントに組み込むのではなく、パラメーターとして値をフィードTokenNoします。FromDateGSELECT

于 2012-08-09T14:59:39.633 に答える