目次
ACCESSとExcelの連携 在庫管理 その8
こんにちは。伊川(@naonaoke)です。
今回は上の記事の続きになります。
今回は、Excelから、ACCESSのデータを削除する方法を紹介します。
ACCESSのデータを削除するには?
私は、基本データは削除しません。
いったん、データベースに組み込まれたら、そのデータも大切なデータだからです。
どうしても、削除しなければならい場合もあります。
テーブルから削除する
多分、テーブルから直で削除する方が大半だと思います。
しかし、それは、できるだけやめた方がいいです。
ACCESSはテーブルを元に作動します。
ヒューマンエラーで、別のデータを削除したら、大変です。
伊川の格言
ACCESSのテーブルは、神棚です。直接触るのはNGです。

データ入力フォームから削除 作成手順その1 入力フォームを確認

データ入力フォームから削除 作成手順その2 削除手順
ボタンをクリックすると、下記の画面が表示されます。

契約書番号を入力します。
契約書番号に紐づいたデータが全部削除します。
コードを確認


この部分が肝になります。
コードは、ACCESSへ接続する決まり文句を記載した後、処理をするコードを記載します。
Private Sub CommandButton1_Click()
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim conStr As String
conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & _
ActiveWorkbook.Path & "\在庫管理.accdb"
con.Open ConnectionString:=conStr
rs.Open Source:="MT_申込", ActiveConnection:=con, _
CursorType:=adOpenKeyset, LockType:=adLockOptimistic
With rs
.Find Criteria:="契約書番号='" & TextBox1.Value & "'"
If .EOF = True Then
MsgBox "該当するレコードは存在しません。"
Exit Sub
End If
.Delete
End With
rs.Close
con.Close
MsgBox "データ削除完了"
Unload UserForm1
End Sub
ここがポイント
ここがポイント

テーブルは直接、触れてはいけません。この原則を守りましょう。
大切なデータを削除する可能性があるからです。
まとめ
データを削除するときは、細心の注意をしましょう。
次回は、Excelから、ACCESSへ転送するコードを解説します。
今回のサンプルファイルは、ありません。
毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。










