アクセス担当のまみです。
月初や新年度になった時などで、テーブルのデータを削除したいなって時がありませんか?
そんな時にボタン1つでデータの削除ができたらとっても便利ですね。
あっデータを削除すると元に戻せないのでバックアップを取ることをお忘れなく!
今回はVBAのコードを使ってテーブルのデータを削除する方法をお伝えしますね。
Contents
テーブルのデータを削除する事前準備
使用するテーブル
「T_納品管理表」
ここでは「T_納品管理表」を使用しますが、同じテーブルじゃなくても大丈夫なので、お手元にデータがあれば準備してください。
データの削除後にも、同じデータを使用するので、バックアップを取っておいてくださいね。
フォームを準備する
リボンの①「作成」タブの②「フォームデザイン」からフォームを作成し、ボタンを2つ配置しましょう。
名前 | 標題 |
btnデータ削除 | データ削除 |
btnテーブル削除 | テーブル削除 |
テーブルのデータを削除する
①「btnデータ削除」を選択した状態で、プロパティーシートの②「イベント」タブのクリック時で③「イベントプロシージャ」を選択してコードの画面を開きます。
「Private Sub btnデータ削除_Click()」と「End Sub」の間に下記のコードを追加しましょう。
DoCmd.RunSQL "DELETE * from T_納品管理表" MsgBox "データが削除されました"
テーブルのデータを削除するにはSQL文を使います。
DoCmd.RunSQL “DELETE * from テーブル名”
お手元のテーブル名にあわせてくださいね。
コードをコピーされたい場合は下記の記事を参考にしてください。
テーブルごと削除する
その前に削除したデータをバックアップから戻しておいてね!
①「btnテーブル削除」を選択した状態で、プロパティーシートの②「イベント」タブのクリック時で③「イベントプロシージャ」を選択してコードの画面を開きます。
「Private Sub btnテーブル削除_Click()」と「End Sub」の間に下記のコードを追加しましょう。
Call DoCmd.DeleteObject(acTable, "T_納品管理表") MsgBox "テーブルが削除されました"
テーブルごと削除するにはDeleteObjectを使います。
Call DoCmd.DeleteObject(acTable, “テーブル名”)
お手元のテーブル名に合わせてくださいね。
追加するコードは下記のとおりです。
If DCount("*", "MSysObjects", "[Name]='T_納品管理表'") > 0 Then Else MsgBox "削除するテーブルがありません" End If
赤枠の部分が追加したコードです。
ちなみに、データ削除ボタンもテーブルがないとエラーにりますが、テーブルの構造を変えないでデータを削除するのが前提だからそのままで問題ないです。
気になるようなら、同じようにメッセージが出るようにすると良いですよ。
データをインポートする前に削除するとか、エクスポートしたらデータを削除しておくとか、そういう使い方もできますね。
インポートの場合は一番先頭に、エクスポートの場合は最後に削除するコードを入れます。
まとめ
削除ボタン1つでデータの削除が簡単にできたらとっても便利ですね。
くれぐれも必要なデータのバックアップは取っておいてくださいね。
バックアップがないと削除ししまったデータは戻せませんので!