#118 すべてのテーブルを空にする例 VBA

次に紹介するコードは、とにかくすべてのテーブルを空にするためのサンプルプロシージャです。データベースの開発あるいはテスト中に使っていたテストデータをすべて削除し、初期状態に戻したいときなどに使えると思います。

ここでは、「For Each tdf In dbs.TableDefs」でデータベース内のすべてのテーブルを列挙します。そして、Attributesプロパティを調べ、システムテーブルと隠しテーブルについてはその対象から除外するようにしています。

さらに、今回は、1つの例として、"mtbl"という4文字で始まる名前のテーブルも除外するようにしています。すべてのテーブルではなく、ある条件に合うテーブルだけを空にしたい場合には、このような方法で選別するとよいでしょう。

そして最後に、SQLステートメントの"DELETE"文を発行して、そのテーブルのすべてのレコードを削除します。
Public Sub EmptyAllTable()
  Dim dbs As Database
  Dim tdf As TableDef

  Set dbs = CurrentDb
  For Each tdf In dbs.TableDefs
    With tdf
      If ((.Attributes And dbSystemObject) Or _
        (.Attributes And dbHiddenObject)) = 0 Then
        If Left$(.Name, 4) <> "mtbl" Then
          dbs.Execute "DELETE * FROM " & .Name
        End If
      End If
    End With
  Next tdf
  dbs.Close

End Sub
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved