• ベストアンサー

エラー(型が一致しません。)の対処方法

またまたお世話になります。 たとえば以下の例です。 Dim dbs As Database, rec As Recordset Set dbs = CurrentDb Set rec = dbs.OpenRecordset("SELECT * FROM テーブル1") 最後の行の実行でエラーになります。何が悪くてどうしたらいいのでしょうか。初歩的ですが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • TAK_999
  • ベストアンサー率43% (42/96)
回答No.2

間違っていたらすいません。 これはAccessのVBAでしょうか? そうだとすると、参照設定でDAOを選択していると思います。 ただし、AccessではADOがデフォルトで参照設定されており、Recordsetという型はADOでもDAOでも 同じ名前になります。 同じ名前の場合は、参照設定の上位に並んでいる方が採用されますので、この例ではRecordsetは ADOの型として認識されています。 意図としてはDAOのレコードセットを受け取りたいわけですから、recの型定義で、 Dim rec as DAO.Recordset とコーディングすれば良いように思います。

tach_ei
質問者

お礼

これはアクセスのVBAです。ありがとうございます。エラーが出ないようになりました。

その他の回答 (1)

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

>>Dim dbs As Database, rec As Recordset このような、異なるタイプの変数定義をならべて定義できなかったの ではないですか? 定義できないから、recの型が不定になり、最終行で、型不一致になる ものと思われます。 違ってたかなぁ・・・

関連するQ&A