• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:[ACCESS/VBA]動的にSQL文をテーブルから抽出する方法?)

[ACCESS/VBA]動的にSQL文をテーブルから抽出する方法?

このQ&Aのポイント
  • ボロボロです。知恵が足りずとても困っています。どなたか教えてください。
  • テーブル「T_SQL」の各レコードに、クエリのSQL文とクエリ名と通しNo.をデータとして入力し、アクション等に応じて、「T_SQL」から抽出したSQL文をマクロのプロシージャの実行のプロシージャ名 SetSQL("クエリー1",FindSQL(No)) によりクエリ「クエリー1」に代入したいのです。
  • 「コンパイルエラー メソッドまたはデータメンバが見つかりません」というエラーメッセージが出ます。冒頭に書いたような機能を可能にするには、どのように記述すればよいのでしょうか?

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

  • ベストアンサー
  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.2

「ぼろぼろ」て言われてもね 当方では問題なくSQL文を返して来ていますが... テーブルのデータ型はどうなっていますか? どのような作業をされているか不明なので補足願います。 呼び元の記述もお願いします。 DAOを使っているのでMS DAO 3.6・・・は参照設定でチェックはつけて下さいね。コンパイルが通ってるので問題ないとは思いますが...

boro-boro
質問者

お礼

ほんとにどうもありがとうございました。 まだ格闘中ですが。。。がんばってみます。

その他の回答 (1)

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.1

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

boro-boro
質問者

お礼

早速のご回答ありがとうございます。試してみます。

boro-boro
質問者

補足

ボロボロです。 ご回答ありがとうございました。説明不足で申し訳ありません。 バージョンはAccess2000です。 もともとコンパイルは通っていたのですが、実行すると エラーがでるような状況でした。 yanmaaさんので早速試してみたところ、コンパイルは通るのですが なぜかFindSQLが実行されません。 マクロのプロシージャ名の記述が間違っているのでしょうか? それとも他に原因があるのか、ほんとに何が悪いのか、 全くわかりません・・・ よろしくお願いします。

関連するQ&A