Microsoft Access Club >VBAのTips解説 >このページ >次頁 < 前項  サイト内検索
 

ADOを用いてテーブルやレコードを削除する方法 : VBAのTips解説



Deleteメソッド

Deleteメソッドとは、カレントレコードを削除したり、テーブルやテーブルフィールド、などをコレクションから削除するメソッドです。DAO、ADOともに使用できますが、削除可能なレコードセットであることが必要です。削除を行うテーブルが連鎖削除リレーションの主テーブルである場合、カレントレコードの削除を行う際、外部キー側のテーブルレコードも削除される可能性があります。

  • 書式
recordset.Delete
  • 引数
引数 意味 指定
Recordset 開いているRecordsetオブジェクト変数を指定します 省略不可

関連項目

  1. CurrentDbメソッド(DAO)
  2. TableDefs(DAO)
  3. Open(ADO)
  4. MoveNext(ADO)

事例 )ADOを用いて"株式会社"の文字を持つレコードを削除する

ADOを用いて"株式会社"の文字を持つレコードを削除します。

  1. テーブルを作成します。
  2. ID、取引先フィールドを作成します。
  3. 連結フォームを作成します。
  4. ID、取引先テキストボックスを作成します。
  5. 実行するコマンドボタンを作成します。

コマンドボタンクリック時イベントプロシージャの作成

コマンドボタンクリック時イベントプロシージャを以下のように作成します。

Private Sub 実行_Click()

   On Error GoTo エラー

   Dim cn As New ADODB.Connection
   Dim rs As New ADODB.Recordset
   Dim strTbl As String
   Dim strMoji As String
   Dim varRet As Variant

   Set cn = CurrentProject.Connection
   strTbl = "納入先マスター"
   strMoji = "株式会社"
   rs.Open strTbl, cn, adOpenKeyset, adLockOptimistic

   Do Until rs.EOF
      If InStr(rs!取引先, strMoji) <> 0 Then '--- A
         rs.Delete
      End If
      rs.MoveNext
   Loop

   Me.Requery '--- B

   rs.Close: Set rs = Nothing
   cn.Close: Set cn = Nothing

   Exit Sub

エラー:

   If Err.Number = -2147217900 Then
      MsgBox "該当するテーブルがありません。"
   Else
      MsgBox Err.Number & " : " & Err.Description
   End If

End Sub
解説
  1. InStr関数は指定した文字が見つからなかった時、0を返します。
  2. 削除したレコードをフォーム上から排除します。

動作確認

  1. フォームをビューモードで開きます。
  2. [実行]ボタンをクリックします。

  1. "株式会社"の文字を持つレコードが全て削除されます。

ページの先頭へ 前ページへ戻る


ADOを用いてテーブルやレコードを削除する方法 : VBAのTips解説


 

-Microsoft Access Club-

cPanel と PLESKをインストールした専用・共有レンタルサーバーを銀行振込でご提供中。契約書は一切不要です。
cPanel や PLESKをインストールした専用・共有レンタルサーバー
まずは1ヶ月から...。
日本国内の銀行振込がOK、契約書は不要です。