【AccessVBA】テーブルデータ削除とテーブルごと削除のコード

テーブルごと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』の式がすごく便利で私はしょっちゅう使うし、助けられています。

このお話についてはまたご紹介できればいいなと思っています。

カテゴリー:
関連記事