• 締切済み

VB2005でACCESSのADO.NETでのテーブル名取得

VB2005 ACCESSのテーブル名を取得したいのですが、方法をご教示ください。以下のところで悩んでいます。 OpenFileDialog1.Filter = "アクセス ファイル (*.mdb)|*.mdb" OpenFileDialog1.ShowDialog() If OpenFileDialog1.FileName <> "" Then Dim St As String Dim Cn As New System.Data.OleDb.OleDbConnection Dim SQL As System.Data.OleDb.OleDbCommand Dim UserID As String = "Admin" Dim Password As String = "" Dim MDBFile As String = OpenFileDialog1.FileName Dim N As String = Microsoft.VisualBasic.Right(MDBFile, 9) St = "Provider=""Microsoft.Jet.OLEDB.4.0"";" St &= "Data Source=""" & MDBFile & """;" St &= "User ID=" & UserID & ";" St &= "Jet OLEDB:Database Password=" & Password Cn.ConnectionString = St SQL = Cn.CreateCommand    Cn.Open() この後テーブル名までたどり着けません DataTable  Cn.GetSchema Cn.GetOleDbSchemaTable( "restrictions") などヘルプなどから試みていますが、これらのコーディング法がわかりません。 テーブル名がわかっている(サンプルのPubs の "Publisher")場合はデータセットからはフィールド名が取得できたのですが・・・ よろしくお願いいたします。

みんなの回答

  • Hardking
  • ベストアンサー率45% (73/160)
回答No.1

OleDbConnectionオブジェクトの GetOleDbSchemaTableメソッドを使って DBのテーブル名を取得することができます。 ◆テーブル名の取得 合には,TABLE_TYPEに"TABLE"を設定すれば、テーブル名が戻り値(Datatable型) に格納されます。OleDbConnectionオブジェクトをconとすると、次のような コーディングになります。 Dim schemaTable As DataTable schemaTable = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _ New Object() {Nothing, Nothing, Nothing, "TABLE"})

noname#24731
質問者

お礼

ありがとうございました。回答に従い1ステップすすめましらが、新たな質問としてお訪ねさせていただきます。

noname#24731
質問者

補足

早速の回答ありがとうございます。.NET初めてでいろいろと戸惑っています。御回答に中で OleDbSchemaGuid.Tablesはどう指定してよいのかご指示お願いいたします。