2013-01-02 19 views

答えて

6

adOpenDynamicはVBScriptで宣言されていないため、CursorTypeプロパティを割り当てると0に変換されるEmptyになります。
0adOpenForwardOnlyであり、フォワードのみ後方への移動をサポートしていないので、方法が望む能力です。

あなたはそのリテラル値でadOpenDynamicを交換する必要があります。スクリプトの最初の行としてOption Explicitを置き、完全にエラーのこのクラスを避けるために

Recordset.CursorType = 2 'adOpenDynamic 

+0

それはトリックでした!ありがとう!! btwデータベースに5行あり、cursortypeが動的に変更されたときに 'recordset.recordcount'が-1を返す理由を知っていますか? –

+0

@TelsonAlvaこれは、[文書化されている](http://msdn.microsoft.com/ja-jp/library/windows/desktop/ms676701(v = vs.85).aspx)ので、 Recordsetオブジェクトは、レコード数を判別できるかどうかに影響します。 RecordCountプロパティは、前方のみのカーソルに対して-1を返します。静的またはキーセットカーソルの実際のカウント。データソースに応じて、-1または動的カーソルの実際のカウントを返します。 – GSerg

+0

ああ、今理解しています!だから私はカウントを得るために静的にカーソルの種類を変更する必要があります。それ以外の場合は動的なので、レコードが動的に変更される可能性があります。ありがとう! –

0

これは、行セットで後方移動が許可されていないためです。エラーメッセージが示すように。あなたのコードはそれらを使用していません。あなたは Recordset.CursorType = adOpenForwardOnly(または同等の値0)でライン

Recordset.CursorType = adOpenDynamic を交換する必要があり

より良い完全ラインを残します。デフォルトは前方カーソルです。

+0

あなたはそれ以外の方法でそれを得ました。 'Find'メソッドは後方に移動する能力を必要とします。 – GSerg

関連する問題