tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^3: DAOによるOpenDatabaseについて
投稿日: 2011/06/01(Wed) 16:55
投稿者魔界の仮面弁士
>  Set db = db2 ----- は何をしているのですか?
No15195 のコードで、変数 db は Form1 のモジュールレベル変数になっていましたよね。
単に、そのモジュールレベル変数への代入操作です。

一方、db1, db2 は Sub Form_Load() 内のプロシージャレベル変数を想定しています。
こちらの変数は、プロシージャが End Sub に到達した時点で解放されます。


> この場合、rsID が (a) の後でも ID.mdb を参照できるのはなぜなのでしょうか?
ID.mdb が閉じられていないからです。


> (a) で、db は master.mdb を参照するように変更になったのではないのでしょうか
その通りです。ですから今後、db.OpenRecordset の呼び出しは、
ID.mdb ではなく master.mdb に対して行われるようになります。

ただし、ID.mdb が閉じられたわけではありません。単に、変数 db が
その Database を参照しなくなったというだけのことです。

ID.mdb が閉じられたわけではありませんから、rsID はそのまま利用できますし、
ID.mdb を開いている Database オブジェクトのインスタンスを再入手すれば、
変数 db を使わずとも、引き続き ID.mdb の操作が可能です。



なお、 Database オブジェクトは Databases コレクションとして保持されています。

Debug.Print DBEngine.Workspaces(0).Databases.Count
Debug.Print DBEngine.Workspaces(0).Databases(0).Name
Debug.Print DBEngine.Workspaces(0).Databases(1).Name
Debug.Print DBEngine.Workspaces(0).Databases(0).Recordsets.Count
Debug.Print DBEngine.Workspaces(0).Databases(1).Recordsets(0).Name

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。