- ベストアンサー
vb.netでデータベース(Access)を複数アクセス(編集)する方法
- vb.netでデータベース(Access)を複数アクセス(編集)する方法についてのご質問です。
- 実行時に「指定したデータベースは既に開いている」というエラーが表示される問題が発生しています。
- DBの型の定義やSQLの型の定義を複数用意してもエラーが表示されます。対処方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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!!
その他の回答 (2)
- TeferiMage
- ベストアンサー率0% (0/9)
下記の部分について、名前を変えて、もう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")
お礼
レス遅くなり申し訳ございません。 無事解決いたしました。ご協力ありがとうございます。
- MARU4812
- ベストアンサー率43% (196/452)
DataReader を使っているからでしょう? 該当データを DataTable で全て取得して、接続を閉じれば良いのでは?
お礼
お早いご返答、誠にありがとうございます。 Dim rsDATFIL As DataTable '※追加 'コマンドの実行 dr = cmnd.ExecuteReader() rsDATFIL = dr.GetSchemaTable '※追加 rsDATFIL.CreateDataReader.Read を行い、テーブル内を覗たのですが ヘッダ情報しか取得できませんでした...
お礼
レス遅くなり申し訳ございません。 無事解決いたしました。ご協力ありがとうございます。