こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

データベースを切り替えて使う方法

初心者です。
環境:WindowsXP,VB6,Access2000
Access2000のデータベースを切り替えて使いたいのですが、うまく動作しません。
ADO使用しています。
普通に考えて、いったんつないでいたDBを
mRs.Close
mCn.Close
Set mRs = Nothing
Set mCn = Nothing
で接続をいったん切断して、
Call ConnectType
で再度DBに接続しましたが、接続されているのは前のDBです。
1 原因がわかりません。
2 DBを切り替えて使う方法がわかりません。
もちろん切り替えの処理以外は現在正常に動作しています。

ご教授よろしくお願いいたします。

<プログラム>
Private mCn As ADODB.Connection
Private mRs As ADODB.Recordset
Private DBfile As String

Private Const DEF_CONNECT As String     = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\word.mdb"
Private Const DEF_SQL As String = "Select * From tango_tbl"

Private Sub ConnectType()
Set mCn = New ADODB.Connection
mCn.ConnectionString = DEF_CONNECT
mCn.Open
Set mRs = New ADODB.Recordset
mRs.Source = DBfile
mRs.ActiveConnection = mCn
mRs.CursorType = adOpenDynamic
mRs.LockType = adLockOptimistic
mRs.Open
End Sub

投稿日時 - 2003-03-21 09:10:13

QNo.503380

暇なときに回答ください

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

> 接続をいったん切断して、
> Call ConnectType
> で再度DBに接続しましたが、接続されているのは前のDBです。

> Private Const DEF_CONNECT As String     = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\word.mdb"
>
> Private Sub ConnectType()
> Set mCn = New ADODB.Connection
> mCn.ConnectionString = DEF_CONNECT

おなじ接続文字列を設定しているのですから、毎回おなじDBに接続されるのは当り前かと。(^-^;

> Private Const DEF_CONNECT As String     = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\word.mdb"

接続先が固定でないのなら、↑この部分は

> Private Const DEF_CONNECT As String     = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="

まで記述し、ファイル名をコモンダイアログ等から読み込めばよいと思います。

投稿日時 - 2003-03-21 09:19:06

お礼

ここへの返事が手違いでうまく反映されてなかったみたいです。
ここには「回答ありがとうございます。すいませんが質問の
書き方がわるかったようで、回答してくださったことは
もちろんやってますし、DBのファイルは同じでテーブルを変更しています。」
とご返事していたのですが、うまく反映されていなかってみたいです。
なぜ反映されていないかこれを書いていて気づいたのですが「お礼する」
ボタンを2度押さないといけないのに1度しか押さないでWindowを閉じた
みたいです。
すいませんでした。

投稿日時 - 2003-03-22 09:14:38

あなたにオススメの質問