即効テクニック |
●概要● Access2000に登場したADO(Microsoft ActiveXデータオブジェクト)を使ってレコードを削除する方法です。 ●詳細●●サンプルコード● Private Sub 登録_Click() Dim cn As ADODB.Connection Dim rs As New ADODB.Recordset Set cn = CurrentProject.Connection rs.Open "商品テーブル",cn,adOpenKeyset,adLockOptimistic,adCmdTableDirect rs.Index = "商品番号" rs.Seek 1234, adSeekFirstEQ rs.Delete rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub ●注意● Visual BasicでADOを利用するためにはデータベースにADOのライブラリーを追加する必要があります。Visual Basic Editorを起動してメニューバーの「ツール」-「参照設定」を選択し、「参照可能なライブラリファイル」の中に、Microsoft ActiveX DataObjects 2.1 Libraryにチェックがついていることを確認してください。通常、Access2000で新規作成すると上記ライブラリを含めた4つのライブラリがチェックされています。ADOではFind系のメソッドを利用してレコードを検索するか、Seekメソッドを利用して高速にレコードの検索を行います。
- ADOではコネクションというオブジェクトを使ってデータベースに接続します。 カレントのデータベースを開くにもコネクションの指定が必要です。
- Recordsetオブジェクトを使うためには、まずオブジェクト変数の宣言を行い、 次に宣言したオブジェクト変数にオブジェクトの参照を割り当てる処理が必要に なります。ここでは宣言と同時に新規オブジェクトへ参照を代入しています。
- カレントデータベースに接続します。
- 商品テーブルを参照して、編集可能なレコードセットを取得します。
- 検索に使用するインデックス名をRecordsetオブジェクトのIndexプロパティ に設定する
- 商品テーブルの中から商品番号が1234のレコードを検索します。
- レコードを削除するためにはdeleteメソッドを実行します。
- レコードセットを閉じます。
- オブジェクト変数を削除します。
- データベースの接続を終了します。
- オブジェクト変数を削除します。