アクセスでテーブル名を所得したいけど。。。


てんてん  2004-02-12 23:12:50  No: 111789

はじめまして、なにぶん超素人ですが、データベースを作って見たいのですが。。。。

以下のプログラムを作成したのですが。。。
コンパイルすると、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


へいぽお  2004-02-13 00:18:51  No: 111790

Dim db As DAO.Database

としてみたらどうでしょう?


岡田 之仁  2004-02-13 00:20:24  No: 111791

う〜ん・・・
アクセスのバージョンは?
参照設定されたDAOのバージョンは?

因みに、上記のコードは、どう見ても動かない代物です。

※  動く最低のコードを記述して欲しいですが・・・
    エクセルへの出力も行っておられるので・・・

以上。


岡田 之仁  2004-02-13 06:55:59  No: 111792

一応、コードはこんな感じですが・・・

    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 以上です。
    指定が無かったので・・・

以上。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加