- ベストアンサー
エラー(型が一致しません。)の対処方法
またまたお世話になります。 たとえば以下の例です。 Dim dbs As Database, rec As Recordset Set dbs = CurrentDb Set rec = dbs.OpenRecordset("SELECT * FROM テーブル1") 最後の行の実行でエラーになります。何が悪くてどうしたらいいのでしょうか。初歩的ですが、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
間違っていたらすいません。 これはAccessのVBAでしょうか? そうだとすると、参照設定でDAOを選択していると思います。 ただし、AccessではADOがデフォルトで参照設定されており、Recordsetという型はADOでもDAOでも 同じ名前になります。 同じ名前の場合は、参照設定の上位に並んでいる方が採用されますので、この例ではRecordsetは ADOの型として認識されています。 意図としてはDAOのレコードセットを受け取りたいわけですから、recの型定義で、 Dim rec as DAO.Recordset とコーディングすれば良いように思います。
その他の回答 (1)
- kokorone
- ベストアンサー率38% (417/1093)
回答No.1
>>Dim dbs As Database, rec As Recordset このような、異なるタイプの変数定義をならべて定義できなかったの ではないですか? 定義できないから、recの型が不定になり、最終行で、型不一致になる ものと思われます。 違ってたかなぁ・・・
お礼
これはアクセスのVBAです。ありがとうございます。エラーが出ないようになりました。