- 締切済み
テーブルの削除
vb6でaccess2000テーブル(作成したもの)をすべて削除しようと試みますが何点か残ってしまいます。一発で削除する方法ありますか? For Each tbl In dbs.TableDefsの構文を使っています。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- fumufumu_2006
- ベストアンサー率66% (163/245)
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を返します。
- fumufumu_2006
- ベストアンサー率66% (163/245)
For Each tbl In dbs.TableDefsのループ内で、動的に削除をするとおかしくなるのかもしれません。 まずループ内で削除対象のテーブル名を配列に取得して、別ループで削除してみてはどうでしょうか?
補足
Debug.Printで覗いてみてもすべてのテーブルを表示していません。