ADOでデータベースに接続し、Recordsetを使用してレコードを削除する記述 Recordsetで、指定のテーブルのレコードを削除 パターン1:カレントプロジェクトの指定のテーブルの値を更新 ・ソース ほかのレコードに移るまでは、削除したレコードがカレントレコード
テーブル「飲料リストの」フィールド「通し番号」が「AA03」フィールド「品目」が「ほうじ茶」のレコードを削除 ▼実行結果▼ テーブル「外部ファイルの飲料リスト」にて] ▼実行結果▼
今回の記述に関する前情報
何を行うか
削除対象はカレントレコード
パターン2:別のAccessファイルの指定のテーブルの値を更新記述例における利用パーツ
→SQL:SELECT文 WHERE句
・メソッド
→Delete / MoveNext / Open / Close
注意点
【実践】指定のテーブルの指定のフィールドの値を削除する記述例
カレントプロジェクトのデータベースに接続する場合の記述【パターン1】
▼取得対象テーブル「飲料リスト」▼
▼記述例▼
Sub delete_record()
Dim CNT As ADODB.connection
Dim RST As ADODB.Recordset
Dim SQL As String
Set CNT = CurrentProject.connection
Set RST = New ADODB.Recordset
SQL = "SELECT * FROM 飲料リスト WHERE 品目='ほうじ茶';"
RST.Open SQL, CNT, adOpenKeyset, adLockOptimistic
RST.Delete
RST.Close: CNT.Close
Set RST = Nothing: Set CNT = Nothing
End Sub
カレントプロジェクト以外のデータベースに接続して削除する場合の記述【パターン2】
「通し番号」に「AA07」、「品目」に「ウーロン茶」、「在庫数」に「0」のレコードを追加
▼取得対象テーブル「外部ファイルの飲料リスト」▼
▼記述例▼
Sub delete_record()
Dim CNT As New ADODB.connection
Dim RST As New ADODB.Recordset
CNT.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Users\user\デスクトップ\tama-shi\ken_all\yubin_data\KEN_ALL.accdb"
RST.Open "外部ファイルの飲料リスト", CNT, adOpenKeyset, adLockOptimistic
Do Until RST.EOF
RST.Delete
RST.MoveNext
Loop
RST.Close: CNT.Close
Set RST = Nothing: Set CNT = Nothing
End Sub