はじめまして、なにぶん超素人ですが、データベースを作って見たいのですが。。。。
以下のプログラムを作成したのですが。。。
コンパイルすると、Dim db As Database のところで、"コンパイルエラー 不正なモジュールです"と出てしまいます。なぜ?前にプログラムを組んだときはそんなのなかったのに。
ちなみに、参照設定はちゃんと行っています。ひょっとして、
凡ミス?だれか見当つきませんか?
Public Sub CategoryA2_Get()
Dim db As DataBase '←ここで、"コンパイルエラー 不正なモジュールです"と表示される
Dim strTbl As String
'オブジェクト変数の設定
Set db = _
DBEngine.Workspaces(0).OpenDatabase("C:\_MyWork\設備\_JIGXXXX_Testプログラム\Test プログラム\DataBase\WindowInt.mdb")
'テーブルの TableDef オブジェクトの数の回数でループする
For i = 1 To db.TableDefs.Count
'取得した TableDef オブジェクトが [MSys/USys] 以外で
'はじまるの名前をセルに入力する
strTbl = MyDB.TableDefs(i - 1).Name
If Left$(strTbl, 4) <> "MSys" And _
Left$(strTbl, 4) <> "USys" Then
ThisWorkbook.Sheets("sheet1"). _
Range("a1").Offset(j, 0).Value = strTbl
j = j + 1
End If
Next
End Sub
Dim db As DAO.Database
としてみたらどうでしょう?
う〜ん・・・
アクセスのバージョンは?
参照設定されたDAOのバージョンは?
因みに、上記のコードは、どう見ても動かない代物です。
※ 動く最低のコードを記述して欲しいですが・・・
エクセルへの出力も行っておられるので・・・
以上。
一応、コードはこんな感じですが・・・
Dim AdX As AdoX.Catalog
Dim AdxTable As AdoX.Table
Set AdX = New AdoX.Catalog
AdX.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;"
For Each AdxTable In AdX.Tables
If AdxTable.Type = "TABLE" Then
Debug.Print AdxTable.Name
End If
Next
Set AdX = Nothing
※ 参照設定で、Microsoft ADO Ext V2.x for DDL and Security
を選択して下さい。
一応、Access2000 以上です。
指定が無かったので・・・
以上。