AccessとExcelの連携パート4【登録されているデータを削除する】

ExcelとAccessの連携



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

AccessとExcelの連携パート4【登録されているデータを削除する】

またしても人気シリーズでもあるAccessとExcel VBAの連携シリーズパート4!

今まで【データ読み込み】・【登録】、【修正】と来ましたので今回は【削除】を紹介していきます。

【削除】は前回の修正とあまりコードに変化がありません。構成は修正フォームとほぼ同一です。
※前回の【AccessとExcelの連携パート3【登録されているデータを修正する】はこちら

AccessとExcelの連携パート3【登録されているデータを修正する】このブログの一番人気のシリーズでもある、待ちに待ったAccessとExcel VBAの連携シリーズパート3です!...

 

削除フォームの流れ

今回のプログラムの流れはこのようになります。これも前回とほぼ同一です。

  1. DB(データベース)に接続
  2. IDをもとにデータが存在するかを確認、IDが存在する場合はTextBoxに現データを表示
  3. 削除をクリックするとAccessデータベースのデータを削除する

このような流れをそって作成していきたいと思います。

DB(データベース)に接続するコード

前回と同じようにDB(データベース)に接続します。

Public Sub DB接続()

'データベース(DB)接続
   Dim myWBPath As String
   Dim constr As String, pswd As String, pas As String
   Dim i As Long
   
   myWBPath = ActiveWorkbook.Path '←Excelファイルがあるパスを取得
   pswd = "パスワード" '←Accessファイルををパスワード保護している場合は必要
   pas = myWBPath & "\Access連携.accdb"  '←Excelファイルが接続先のAccessファイルと同一階層にあると仮定

 '----------データベースに接続-------------
  constr = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
 "Data Source=" & pas & ";" & _
 "Jet OLEDB:Database Password=" & pswd & ";"
  con.Open ConnectionString:=constr
                 ' ↓テーブル名
  rs.Open Source:="会員名簿", ActiveConnection:=con, _
  CursorType:=adOpenKeyset, LockType:=adLockOptimistic
 '--------------------------------------

End Sub

IDをもとにデータが存在するかを確認

続いてTextBox1(IDのBox)にIDを入力してIDが存在するのかを確認します。

Private Sub TextBox1_Change()

If TextBox1.Value = "" Then
Exit Sub
End If

Call DB接続 '接続コード呼び出し

  With rs
      .MoveFirst
      .Find criteria:="ID='" & TextBox1.Value & "'"
  
   If .EOF = True Then  'IDが存在するか確認
   
     MsgBox "IDが見つかりませんでした"
      TextBox1.Value = ""
  
         rs.Close 'データベースを閉じる
         con.Close 'データベースを閉じる
   Exit Sub
   End If
   
       'IDが見つかった場合はフォームにデータを表示
          TextBox2.Value = .Fields("氏名").Value
          TextBox3.Value = .Fields("住所").Value
  End With
    
   rs.Close 'データベースを閉じる
   con.Close 'データベースを閉じる
End Sub

Accessデータベースのデータを削除するコード

今回の前回と違う部分がここです。今回はデータを削除するコードです。

Private Sub CommandButton1_Click()

If TextBox1.Value = "" Then
MsgBox "IDを指定してください"
Exit Sub
End If

Call DB接続 '接続コード呼び出し

 With rs
       .Find criteria:="ID='" & TextBox1.Value & "'"
          If .EOF = True Then 'IDが存在するか確認
       MsgBox "IDが見つかりませんでした"
       TextBox1.Value = ""
    Exit Sub
   End If
   
    Dim res As Integer
    res = MsgBox("データを削除します、よろしいですか?", vbYesNo)
    If res = vbNo Then Exit Sub
   
   
   'IDが見つかった場合は変更処理
    .Delete  'データを削除する
     End With
     MsgBox "削除しました"
 
   rs.Close 'データベースを閉じる
   con.Close 'データベースを閉じる
 

End Sub

違う部分はここだけですね

    Dim res As Integer
    res = MsgBox("データを削除します、よろしいですか?", vbYesNo)
    If res = vbNo Then Exit Sub
   
   
   'IDが見つかった場合は変更処理
    .Delete  'データを削除する
     End With
     MsgBox "削除しました"

今回はデータを削除するので念の為に確認するコードを組み込みました。

削除自体は

 .Delete

だけで完了します。

コード実行

実際にコードを実行してみましょう。

 

AccessのDBの【ID1】が削除されています。このようにな動作していたら完了です。お疲れさまでした(^^)

ダウンロード

上記のサンプルファイルをダウンロードできます。削除フォームは【UF3】です。

免責事項等をよく読みお使いください。

フォロー・チャンネル登録お願いします

VBA以外についてのブログはこちら↓

https://yb-log.com/

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver

ExcelとAccessの連携

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です