Sub test()
Dim DB As Database
Dim T As TableDef
Dim myTable As String
myTable = "Table1"
Set DB = OpenDatabase(CurrentProject.FullName)
For Each T In DB.TableDefs
If T.Name = myTable Then
DoCmd.DeleteObject acTable, myTable
Exit For
End If
Next
DB.Close
Set DB = Nothing
End Sub
これを実行しようとすると
Dim DB As Database
の部分で
コンパイルエラー
プロジェクトではなく、ユーザ定義型を指定してください。
と言うエラーになります。
Dim DB As Objectにすればエラーにならずに進みますが
何が原因なのでしょうか?
Private Sub コマンド0_Click()
Dim DB As DAO.Database
Dim T As DAO.TableDef
Dim myTable As String
myTable = "Test_1"
Set DB = OpenDatabase(CurrentProject.FullName)
For Each T In DB.TableDefs
If T.Name = myTable Then
DoCmd.DeleteObject acTable, myTable
Exit For
End If
Next
DB.Close
Set DB = Nothing
End Sub
要は、DAOのライブラリが参照できないので<DAO.Database><DAO.TableDef>をオブジェクトとして認識できないというエラーです。VBエディタのツール(T)でDAOの参照設定を追加することでエラーは発生しなくなります。なお、<DAO.>は書いた方が他者には優しいと思いますよ。
お礼
ご回答ありがとうございました。