• 締切済み

テーブルの削除

vb6でaccess2000テーブル(作成したもの)をすべて削除しようと試みますが何点か残ってしまいます。一発で削除する方法ありますか? For Each tbl In dbs.TableDefsの構文を使っています。

みんなの回答

回答No.2

vb6は無いので、excelのvbaです。 基本的には動くと思うのですが・・・ 以下のプログラムでどう表示しますか? Sub test() Dim mdb As String mdb = "C:\なんたら.mdb" 'mdbのフルネーム 'Dim acc As New Access.Application '参照設定している場合 Const DB_ATTACHEDTABLE = &H40000000 Dim acc As Object Set acc = CreateObject("Access.Application") Dim tbl As Object acc.OpenCurrentDatabase mdb For Each tbl In acc.CurrentDb.TableDefs If (tbl.Attributes = DB_ATTACHEDTABLE) Or (tbl.Attributes = 0) Then MsgBox tbl.Name End If Next Set acc = Nothing End Sub p.s. Attributesの指定で、定数のDB_TABLEを使うと正しく表示されません。 DB_TABLEは1なのですが、テーブルは0を返します。

回答No.1

For Each tbl In dbs.TableDefsのループ内で、動的に削除をするとおかしくなるのかもしれません。 まずループ内で削除対象のテーブル名を配列に取得して、別ループで削除してみてはどうでしょうか?

taka3crown
質問者

補足

Debug.Printで覗いてみてもすべてのテーブルを表示していません。

関連するQ&A