6

以下のコードでMySQLデータベースにクエリを実行しようとしています。

'declare the variables 
Dim Connection
Dim Recordset
Dim SQL

'declare the SQL statement that will query the database
SQL = "SELECT * FROM CUSIP"

'create an instance of the ADO connection and recordset objects
Set Connection = CreateObject("ADODB.Connection")
Set Recordset = CreateObject("ADODB.Recordset")

'open the connection to the database
Connection.Open "DSN=CCS_DSN;UID=root;PWD=password;Database=CCS"

Recordset.CursorType=adOpenDynamic

'Open the recordset object executing the SQL statement and return records 

Recordset.Open SQL,Connection
Recordset.MoveFirst

If Recordset.Find ("CUSIP_NAME='somevalue'") Then
    MsgBox "Found"
Else
    MsgBox "Not Found"
End If


'close the connection and recordset objects to free up resources
Recordset.Close
Set Recordset=nothing
Connection.Close
Set Connection=nothing

上記を実行するたびに、「行セットは後方スクロールをサポートしていません」というエラーが発生します。何か提案はありますか?

4

2 に答える 2

7

adOpenDynamicは VBScript で宣言されていないため、プロパティを割り当てると equalsEmptyに変換されます。であり、 forward only は、メソッドが必要とする機能である後方への移動をサポートしていません。0CursorType
0adOpenForwardOnlyFind

adOpenDynamicそのリテラル値に置き換える必要があります。

Recordset.CursorType = 2 'adOpenDynamic

このクラスのエラーを完全に回避するにOption Explicitは、スクリプトの最初の行として配置します。

于 2013-01-02T12:53:50.823 に答える
0

これは、行セットが後方への移動を許可していないためです。エラーメッセージが示すように。あなたのコードはそれらを使用していません。そのため、行を交換する必要があります

Recordset.CursorType=adOpenDynamic with Recordset.CursorType=adOpenForwardOnly (または同等の値 0)

完全に列を離れたほうがよいでしょう。デフォルトは前方カーソルです。

于 2013-01-02T12:50:42.390 に答える