よく出るエラーで、解決しないままでいたものです。
データベースを開いて、以下のレコードセットを実行すると
Set Pattern = lc_dbNTJ.OpenRecordset(strSQL, dbOpenDynaset)
"型が一致しません"
というエラーがでます。
これって、SQL文エラーではないですよね?
Public lc_dbNTJ As Database
Set lc_dbNTJ = DBEngine.Workspaces(0).OpenDatabase(gb_strDBName)
Dim Pattern As Recordset
と宣言しているのですが。
>Dim Pattern As Recordset
Dim Pattern As DAO.Recordset
とか?
SQL文はどのなものですか?
SQL文= "select PatternName from 表示パターン"
このようなものです。
参照設定をいじると直るときがありますが、はっきりしていないので
断言できません。
今はDAO3.6object libraryを設定して動いています。
Sayさんのおっしゃるように
Dim Pattern As DAO.Recordset
にしたら、型が一致しませんというエラーは出なくなりました。
Sayさん、t@Kiさんありがとうございます。
でも、何故?
参照設定の中でDAO以外のRecordsetというオブジェクト持つライブラリを指定してませんか?
例えばADOとか。
その場合、どのライブラリのRecordsetオブジェクトなのかを
明示的に指定しないとエラーが起こることがあります。
上記の場合に限らず、ライブラリを明示的に指定する癖をつけたほうがいいと思いますが。
nanashiさん、なるほどです。
確かにADO2.1も設定していました。
ありがとうございます。
ツイート | ![]() |