テーブルごとVBAで削除したいときってありませんか??
そんなときあるのか?って思うかもしれませんが、私にはこの機能、けっこう役に立ちました。
VBAでテーブル操作できるってところがすごく便利なんです。
テーブルごと削除する方法とテーブルのデータのみ削除する方法をご紹介します。
目次
テーブルのデータのみ削除するコード
コードはSQLなので一文です(笑)
簡単すぎてびっくりしちゃいます。
DoCmd.RunSQL "DELETE * FROM テーブル1"
たったコレだけです。コレだけでデータが消えてしまうのも恐ろしい気もしますが…。
『テーブル1』と書いてあるところには、テーブルの名前が入ります。
ボタンクリックと合わせ使うとこんな感じのコードになります。
Private Sub テーブルデータ消去_Click()
DoCmd.RunSQL "DELETE * FROM 商品リスト" '『商品リスト』がテーブル名です
End Sub
これは『テーブルデータ消去』というボタンクリックひとつでテーブルデータのみ、削除されます。
続きまして、今度はテーブルごと削除するコードになります。
テーブルごと削除するコード
今度はテーブルごと削除する方法です。
先ほどはテーブルのデータのみ削除する方法をご紹介しましたが、今回はテーブルごと削除します。
コードは下のような感じになります。
Call DoCmd.DeleteObject(acTable, "テーブル名")
具体的に使用コードを書くとこんな感じになります。
If DCount("*", "MSysObjects", "[Name]='商品リスト_インポート エラー'") > 0 Then
Call DoCmd.DeleteObject(acTable, "商品リスト_インポート エラー")
Else
End If
『If DCount(“*”, “MSysObjects”, “[Name]=’商品リスト_インポート エラー'”) > 0 Then』
この部分で『商品リスト_インポートエラー』というテーブルが存在するのかしないのか判定しています。
存在するなら真を返すので、削除ということで、
『Call DoCmd.DeleteObject(acTable, “商品リスト_インポート エラー”)』の部分が返されますので、テーブル『商品リスト_インポートエラー』はテーブルごと削除されることになります。
『If~Then』の式がすごく便利で私はしょっちゅう使うし、助けられています。
このお話についてはまたご紹介できればいいなと思っています。