WindowsXP,VB6.0SP6にて開発をしています。
プロジェクトを起動し、下記コードを実行した最初はOpenrecordsetでエラーになります。
しかしながら、2回目以降は正常に動作します。
何か接続方法か書き方に問題があるのでしょうか。
ご存知の方は教えてください。
' DAOのオブジェクト変数を宣言する
Dim ws As DAO.Workspace
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSql as string
On error goto ERR
' デフォルトのワークスペースを定義する
Set ws = DBEngine.Workspaces(0)
' ODBC接続文字列を指定してデータベースを開く
Set db = ws.OpenDatabase( _
"", False, False, _
"ODBC;Driver={SQL Server};" & _
"SERVER=" & strServerMei & ";DATABASE=pubs;" & _
"UID="" & strUser & ";PWD=;")
' SQLステートメントを指定してレコードセットを作成する
strSql = "select * from " + tblA
Set rs = db.OpenRecordset( strSql ) <-ココでエラーになる。
ERR:
' 終了処理
rs.Close
db.Close
ws.Close
Set rs = Nothing
Set db = Nothing
Set ws = Nothing
自己解決です。
Set ws = DBEngine.Workspaces(0)
→
Set ws = DBEngine.CreateWorkspace("", "", "", dbUseODBC)
とし、
Set rs = db.OpenRecordset( strSql )
→
Set rs = db.OpenRecordset(strSql, dbOpenDynaset)
とすることでエラーが出なくなりました。