| 
    
     |  | 毎度お世話になっております。 
 ADOの勉強の為、Excelのシートデータをmdbにインポートする
 プログラムを作成しました。(Access操作は初めてです。)
 
 そこで質問なのですが、ADOの接続が確立された時点で、.mdbの中の複数存在
 するテーブル名を取得する方法はあるのでしょうか?
 (自分で調べたかぎりでは、操作したいテーブル名が分かっていてのADO接続
 であり、自分のやり方が邪道のように感じています。)
 
 作業の流れは
 
 1 Excelフォーム上で.xlsファイルの指定(任意)
 2 裏で一度そのファイルを開きすべてのシート名を取得、Comboboxにadditem
 3 シートを選択
 4 そのシートは何行目が見出し行なのかを指定
 5 インポートされるmdbファイルを指定(任意)
 6 対象となるテーブル名を指定
 7 ADOで接続し、Recordsetよりそのテーブルにあるフィールド名すべてを
 UserFormに表示して、接続を一旦終了する。
 8 個々のフィールドにシートのどの列を対応させるのか設定
 9 フィールドとシートの列のデータ型に矛盾がないかチェック
 10 再度接続して、インポートスタート
 
 です。現在6の作業は一度mdbファイルを開きテーブル名を確認して、直接TextBox
 に手入力していますが、プログラムでテーブル名が取得できれば、現在Textboxの
 所をComboBoxに変更してそこから選択できるようにしたいです。
 
 
 Const cnsMDBConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
 
 Sub Data_Inport()
 
 Dim CN As ADODB.Connection
 Dim Res As ADODB.Recordset
 Dim strExlFileName As String
 Dim strSheetName As String
 Dim strMdbFileName As String
 Dim strTable As String
 
 '//////////////////////////////////////
 'ファイル名取得やテーブル名取得は省略
 '//////////////////////////////////////
 
 Set CN = New ADODB.Connection
 
 CN.Open cnsMDBConnect & strMdbFileName & ";"
 
 '私の認識ではこれより先の操作では、必ずテーブル名が必要という認識です。
 'connectionが確立したこの時点でテーブル名が取得できればと思っています。
 'この時点でのconnectionのメンバを見渡した限りではそれらしい物は発見でき
 'ませんでした。
 
 Set Res = New ADODB.Recordset
 
 Res.Open strTable, CN,adOpenKeyset, adLockOptimistic, adCmdTable
 
 以下省略
 
 
 環境はexcel2003,access2000,os xpです。よろしくお願いします。
 
 |  |