Close メソッド

開いているオブジェクト、およびそれに従属しているオブジェクトをすべて閉じます。

構文

object.Close

プレースホルダ object は、開いている Connection オブジェクトまたは Recordset オブジェクトを表すオブジェクト変数です。

解説

Close メソッドは、Connection オブジェクトまたは Recordset オブジェクトを閉じて、それらに関連付けられているシステム リソースを解放するために使います。オブジェクトを閉じてもメモリから削除されるわけではないため、そのプロパティ設定を変更してから再び開くことも可能です。オブジェクトをメモリから完全に削除するには、オブジェクト変数に Nothing を設定します。

Connection

Close メソッドを使って Connection オブジェクトを閉じると、その接続に関連付けられている活動中の Recordset オブジェクトも閉じられます。閉じようとしている Connection オブジェクトに関連付けられている Command オブジェクトは、接続を閉じた後も依然として残りますが、Connection オブジェクトとの関連付けは解除されてしまいます。したがって、接続を閉じた後の Command オブジェクトの ActiveConnection プロパティは Nothing に設定されます。また、Command オブジェクトの Parameters コレクションはクリアされます。

接続を閉じた後に Open メソッドを呼び出せば、同じデータ ソースまたは別のデータ ソースとの接続を再確立できます。Connection オブジェクトが閉じているときに、データ ソースへの開いている接続を必要とするメソッドを呼び出すと、エラーになります。

開いている Recordset オブジェクトが接続上に存在するときに Connection オブジェクトを閉じると、すべての Recordset オブジェクトにあるすべての未処理の変更がロールバックされます。トランザクションの処理中に Close メソッドを明示的に呼び出して Connection オブジェクトを閉じようとすると、エラーになります。また、トランザクションの処理中に Connection オブジェクトが有効範囲外になった場合、ADO は自動的にトランザクションをロールバックします。

Recordset

Close メソッドを使って Recordset オブジェクトを閉じると、オブジェクトに関連付けられているデータと、この Recordset オブジェクトを通じて行った可能性のあるすべての排他的アクセスが解放されます。その後、Open メソッドを呼び出せば、同じ属性または変更された属性を持つレコードセットを再び開くことができます。Recordset オブジェクトが閉じているときに接続使用中のカーソルを必要とするメソッドを呼び出すと、エラーになります。

即時更新モードでは、編集中に Close メソッドを呼び出すとエラーになります。このため、先に Update メソッドまたは CancelUpdate メソッドを呼び出してください。また、バッチ更新中に Recordset オブジェクトを閉じると、直前の UpdateBatch 呼び出しから行われた変更がすべて失われます。

Clone メソッドを使って、開いている Recordset オブジェクトのクローンを作成した場合、元のオブジェクトやクローン オブジェクトを閉じてもそのほかのクローンがともに閉じるわけではありません。

対象

ConnectionRecordset

関連項目

Open