• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vb.netでデータベース(Access)を複数アクセス(編集)する方)

vb.netでデータベース(Access)を複数アクセス(編集)する方法

このQ&Aのポイント
  • vb.netでデータベース(Access)を複数アクセス(編集)する方法についてのご質問です。
  • 実行時に「指定したデータベースは既に開いている」というエラーが表示される問題が発生しています。
  • DBの型の定義やSQLの型の定義を複数用意してもエラーが表示されます。対処方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

DataAdapterを使われたほうがよろしいかと。 '/**コネクションしてテーブル取得**/ Dim Con As OleDbConnection, Cmd As OleDbCommand Dim Provider As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" '接続プロバイダ Dim st As String st = Provider st &= Chr(34) & mdbPATH & Chr(34) & ";" Con.ConnectionString = st Cmd.Connection = Con Dim ds As New DataSet Dim dt As DataTable Dim dbAdapter As OleDbDataAdapter wrk_sql = "SELECT * FROM TEST" wrk_sql &= " WHERE N_DATA = 0" Cmd.CommandText = wrk_sql dbAdapter.SelectCommand = Cmd dbAdapter.Fill(ds, TableName) dt = ds.Tables(TableName) '/******************************************************// あとは、アダプターを使って追加・更新・削除を行なえばOK!!

tekesuta_1985
質問者

お礼

レス遅くなり申し訳ございません。 無事解決いたしました。ご協力ありがとうございます。

その他の回答 (2)

回答No.3

下記の部分について、名前を変えて、もう1セットデータベースを開くというのはどうでしょうか? 'データベース Dim G_DATABASES As New System.Data.OleDb.OleDbConnection 'DBの型を定義 Dim dr As System.Data.OleDb.OleDbDataReader 'SQLの型を定義 Dim cmnd As New System.Data.OleDb.OleDbCommand 'データベースを開く G_DATABASES = DBOpen(D:\test\db1.mdb")

tekesuta_1985
質問者

お礼

レス遅くなり申し訳ございません。 無事解決いたしました。ご協力ありがとうございます。

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

DataReader を使っているからでしょう? 該当データを DataTable で全て取得して、接続を閉じれば良いのでは?

tekesuta_1985
質問者

お礼

お早いご返答、誠にありがとうございます。 Dim rsDATFIL As DataTable '※追加 'コマンドの実行 dr = cmnd.ExecuteReader() rsDATFIL = dr.GetSchemaTable '※追加 rsDATFIL.CreateDataReader.Read を行い、テーブル内を覗たのですが ヘッダ情報しか取得できませんでした...

関連するQ&A