WinXP SP3, VB6.0 SP6, MicrosoftDAO3.6ObjectLibraryを
参照設定しています。
ACCESS95の下記コードを、VB6.0で実行すると
実行時エラー424(オブジェクトが必要です)が
発生します。
どのように、オブジェクトを設定していいのかわかりません。
教えてください。
Dim dbs As DAO.Database
Set dbs = CurrentDb
Access の CurrentDb は、現在開かれている mdb を表します。
しかし VB の場合は、mdb はまだ開かれていませんので、
それを自分で開かなければなりません。たとえばこのようになります。
Dim de As DAO.DBEngine
Set de = New DAO.DBEngine
Dim ws As DAO.Workspace
Set ws = de.CreateWorkspace("#Default Workspace#", "Admin", "")
Dim db As DAO.Database
Set db = ws.OpenDatabase("C:\db1.mdb")
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset("SELECT * FROM TBL")
なお、Workspace は DBEngine はグローバルオブジェクトであるため、
DAO への参照設定をしている場合は、実はいきなり
Set db = OpenDatabase("C:\db1.mdb")
というコードを書いても開くことができます。
とはいえ、参照設定せずにレイトバインドで実行させる場合においては
上位オブジェクトを省略できないため、DBEngine から辿る必要があります。
以下、今回の件とは微妙に異なりますが、一応参考情報として。
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+201011/10110013.txt
魔界の仮面弁士さん
返信遅くなりまして申し訳ありません。
おかげさまで、接続できるようになりました。
ありがとうございます。