Error オブジェクトには、ADO での 1 回の操作で発生したデータ アクセス エラーに関連する詳細情報が格納されます。
Description、HelpContext、 HelpFile、NativeError、 Number、Source、SQLState
Error オブジェクトのプロパティを調べると、各エラーに関する詳細情報を得ることができます。次のプロパティがあります。
· Description プロパティには、エラーの警告文が格納されます。
· Number プロパティには、エラー定数の長整数型 (Long) の値が格納されます。
· Source プロパティは、エラーを引き起こしたオブジェクトを識別します。このプロパティは、データ ソースへの要求の後に複数の Error オブジェクトが Error コレクションに格納される場合に特に便利です。
· HelpFile プロパティと HelpContext プロパティは、それぞれ発生したエラーに対応する Windows ヘルプ ファイルとそのトピックを示します (どちらも存在する場合)。
· SQLState プロパティと NativeError プロパティは、ODBC データ ソースからの情報を提供します。
プロバイダ エラーが発生すると、そのエラーが Connection オブジェクトの Errors コレクションに格納されます。有効な Connection オブジェクトがまったくない場合は、Microsoft(R) Visual Basic(R) for Applications の Err オブジェクトからエラー情報を取得する必要があります。ADO は 1 回の ADO 操作によって複数のエラーを返す機能をサポートしており、プロバイダ固有のエラー情報を扱うことができます。
ADO は、次に示す ADO 固有のエラーを返すことができます。
定数名 |
番号 |
説明 |
adErrInvalidArgument |
3001 |
使用した引数の型に誤りがあるか、引数が有効範囲外の値であるか、または別の引数と競合しています。 |
adErrNoCurrentRecord |
3021 |
BOF か EOF のどちらかが True です。または、カレント レコードが必要な操作を要求しましたが、カレント レコードが削除されています。 |
adErrIllegalOperation |
3219 |
このコンテキストでは要求した操作は行えません。 |
adErrInTransaction |
3246 |
トランザクションの実行中に明示的に Connection オブジェクトを閉じていない可能性があります。 |
adErrFeatureNotAvailable |
3251 |
プロバイダは要求した操作をサポートしていません。 |
adErrItemNotFound |
3265 |
ADO は、要求した名前または序数参照に対応するコレクションの中で、オブジェクトを見つけることができませんでした。 |
adErrObjectNotSet |
3420 |
使用しているオブジェクト参照は有効なオブジェクトを指していません。 |
adErrDataConversion |
3421 |
現在の操作で使用した値の型に誤りがあります。 |
adErrObjectClosed |
3704 |
要求した操作はオブジェクトが閉じている場合には行えません。 |
adErrObjectOpen |
3705 |
要求した操作はオブジェクトが開いている場合には行えません。 |
adErrProviderNotFound |
3706 |
ADO は指定されたプロバイダを見つけることができませんでした。 |
adErrBoundToCommand |
3707 |
Command オブジェクトをソースとして Recordset オブジェクトの ActiveConnection プロパティを変更することができません。 |
adErrInvalidParamInfo |
3708 |
Parameter オブジェクトの定義に誤りがあります。 |
adErrInvalidConnection |
3709 |
閉じた、または無効な Connection オブジェクトへの参照を使ってオブジェクトへの操作を要求しました。 |
ADO は、プロバイダとまったく同じように OLE Error Info オブジェクトをクリアしてから、新しいエラーを出す可能性のある呼び出しを行います。ただし、Connection オブジェクトの Errors コレクションは、ADO またはプロバイダが新しいエラーを出したときだけクリアされ、収集されます。
プロパティやメソッドの中には、Errors コレクションの中で Error オブジェクトとして出現しながら、プログラムの実行を停止しないような警告を返すものもあります。Recordset オブジェクトに対して Delete、Resync、UpdateBatch、または CancelBatch のいずれかのメソッドを呼び出すとき、または Recordset オブジェクトに対して Filter プロパティを設定するときは、先に Errors コレクションに対して Clear メソッドを呼び出してください。これにより、Errors コレクションの Count プロパティを読み取り、返される警告を調べることができるようになります。
コレクション内の Error オブジェクトを序数を使って参照する場合は、次のどちらかの構文を使います。
connection.Errors.Item(0)
connection.Errors(0)