プロが教えるわが家の防犯対策術!

またまたお世話になります。

たとえば以下の例です。
Dim dbs As Database, rec As Recordset

Set dbs = CurrentDb
Set rec = dbs.OpenRecordset("SELECT * FROM テーブル1")

最後の行の実行でエラーになります。何が悪くてどうしたらいいのでしょうか。初歩的ですが、よろしくお願いします。

A 回答 (2件)

間違っていたらすいません。


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

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

お礼日時:2006/05/19 15:56

>>Dim dbs As Database, rec As Recordset


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

違ってたかなぁ・・・
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A