- ベストアンサー
[ACCESS/VBA]動的にSQL文をテーブルから抽出する方法?
- ボロボロです。知恵が足りずとても困っています。どなたか教えてください。
- テーブル「T_SQL」の各レコードに、クエリのSQL文とクエリ名と通しNo.をデータとして入力し、アクション等に応じて、「T_SQL」から抽出したSQL文をマクロのプロシージャの実行のプロシージャ名 SetSQL("クエリー1",FindSQL(No)) によりクエリ「クエリー1」に代入したいのです。
- 「コンパイルエラー メソッドまたはデータメンバが見つかりません」というエラーメッセージが出ます。冒頭に書いたような機能を可能にするには、どのように記述すればよいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
「ぼろぼろ」て言われてもね 当方では問題なくSQL文を返して来ていますが... テーブルのデータ型はどうなっていますか? どのような作業をされているか不明なので補足願います。 呼び元の記述もお願いします。 DAOを使っているのでMS DAO 3.6・・・は参照設定でチェックはつけて下さいね。コンパイルが通ってるので問題ないとは思いますが...
その他の回答 (1)
- yanmaa
- ベストアンサー率45% (207/457)
Accessのバージョンは記載した方が良いですよ。 大抵レコードセットをパブリックで指定しているのが悪いのでしょう。 通常は実行ではなく「コンパイル」をしてエラー個所を修正した方が良いですね。 下記の内容でコンパイルは通りました。 Public Function FindSQL(No As String) Dim db As Database Dim rs As Recordset Set db = CurrentDb() Set rs = db.OpenRecordset("T_SQL", dbopendynaset) strcriteria = "[No]='" & No & "'" rs.FindFirst strcriteria FindSQL = rs!strSQL rs.Close db.Close End Function
お礼
早速のご回答ありがとうございます。試してみます。
補足
ボロボロです。 ご回答ありがとうございました。説明不足で申し訳ありません。 バージョンはAccess2000です。 もともとコンパイルは通っていたのですが、実行すると エラーがでるような状況でした。 yanmaaさんので早速試してみたところ、コンパイルは通るのですが なぜかFindSQLが実行されません。 マクロのプロシージャ名の記述が間違っているのでしょうか? それとも他に原因があるのか、ほんとに何が悪いのか、 全くわかりません・・・ よろしくお願いします。
お礼
ほんとにどうもありがとうございました。 まだ格闘中ですが。。。がんばってみます。