0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

復刻 VBAのtips解説

Posted at

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

Deleteメソッド

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

:green_book:書式
recordset.Delete
:green_book:引数
引数 意味 指定
Recordset 開いているRecordsetオブジェクト変数を指定します 省略不可
関連項目
  1. CurrentDbメソッド(DAO)
  2. TableDefs(DAO)
  3. Open(ADO)
  4. MoveNext(ADO)

$\style{background-color:DodgerBlue;}{事例 )ADOを用いて"株式会社"の文字を持つレコードを削除する}$

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

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

image.png

$\style{background-color:DodgerBlue;}{コマンドボタンクリック時イベントプロシージャの作成}$

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

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

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

解説

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

$\style{background-color:DodgerBlue;}{動作確認}$

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

    image.png

  3. [実行]ボタンをクリックします。

    image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?