Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


23813 / 76738 ←次へ | 前へ→

【58285】ADO接続にて テーブル名の取得
質問  みそじのおじさん  - 08/10/16(木) 10:36 -

引用なし
パスワード
   毎度お世話になっております。

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です。よろしくお願いします。 

0 hits

【58285】ADO接続にて テーブル名の取得 みそじのおじさん 08/10/16(木) 10:36 質問
【58287】Re:ADO接続にて テーブル名の取得 neptune 08/10/16(木) 11:20 回答
【58289】Re:ADO接続にて テーブル名の取得 みそじのおじさん 08/10/16(木) 15:42 お礼
【58297】Re:ADO接続にて テーブル名の取得 neptune 08/10/16(木) 22:06 発言
【58308】Re:ADO接続にて テーブル名の取得 みそじのおじさん 08/10/17(金) 19:30 お礼

23813 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free