ボロボロです。知恵が足りずとても困っています。どなたか教えてください。
テーブル「T_SQL」の各レコードに、
クエリのSQL文(フィールド名=「strSQL」)と
クエリ名(フィールド名=「QName」)と
通しNo.(フィールド名=「No」)
をデータとして入力し、アクション等に応じて、「T_SQL」から
抽出したSQL文を、
マクロの「プロシージャの実行」の
プロシージャ名 SetSQL("クエリー1",FindSQL(No)) により
クエリ「クエリー1」に代入したいのです。
現在以下の通りに作りました。
'データベース定義
Public db As Database
'レコードセット定義
Public rs As Recordset
Public Function SetSQL(QName As String, strSQL As String)
CurrentDb.QueryDefs("QName").SQL = strSQL
End Function
Public Function FindSQL(No As String)
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
これで実行すると、
「コンパイルエラー メソッドまたはデータメンバが
見つかりません」
というエラーメッセージが出ます。
ちょこちょこいろんなところを修正してみても、
このメッセージだけでなく他にもいろんな
エラーメッセージが出ます。
冒頭に書いたような機能を可能にするには、
どのように記述すればよいのでしょうか??
ほんとにほんとに困っています。どなたか助けてください。
No.2ベストアンサー
- 回答日時:
「ぼろぼろ」て言われてもね
当方では問題なくSQL文を返して来ていますが...
テーブルのデータ型はどうなっていますか?
どのような作業をされているか不明なので補足願います。
呼び元の記述もお願いします。
DAOを使っているのでMS DAO 3.6・・・は参照設定でチェックはつけて下さいね。コンパイルが通ってるので問題ないとは思いますが...
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
この回答への補足
ボロボロです。
ご回答ありがとうございました。説明不足で申し訳ありません。
バージョンはAccess2000です。
もともとコンパイルは通っていたのですが、実行すると
エラーがでるような状況でした。
yanmaaさんので早速試してみたところ、コンパイルは通るのですが
なぜかFindSQLが実行されません。
マクロのプロシージャ名の記述が間違っているのでしょうか?
それとも他に原因があるのか、ほんとに何が悪いのか、
全くわかりません・・・
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessレポートのチェックボッ...
-
accessデータを指定したExcel、...
-
Access レポート印刷するときに...
-
access2021 VBA メソッドまたは...
-
Microsoft365にAccessってあり...
-
Access 複数条件検索の設定が上...
-
Accessのクエリで、replace関数...
-
accessでlaccdbファイルが削除...
-
テーブルとクエリの相関図は表...
-
【至急・画像あり】建物or住所...
-
Access IF文でテーブルに存在し...
-
【Access】Dcount関数の複数条...
-
アクセスで教えてください。 住...
-
access2021 強制終了してしまう
-
Access Error3061 パラメータが...
-
Access VBA [リモートサーバー...
-
Access VBA でHTML文を表示したい
-
アクセスで作成したマクロの印...
-
Access VBA を利用して、フォル...
-
アクセス 削除するレコードを含...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
希望の位置へフィールドを追加...
-
accessのvbaでの実行時エラーに...
-
列名が無効です
-
パススルークエリの使い方について
-
FindFirst複数条件
-
データベースの変換
-
キーワードを1つにまとめたいです
-
sqlite_open()なんですが
-
Berkeley DB 1.85 -> GNU dbm ...
-
型 varchar から型 numeric へ...
-
データベースの最適化をマクロ...
-
AndroidからのAccessデータベー...
-
DB2 UDBって?
-
スタライズとは、どういう意味...
-
構文エラー:演算子がありませ...
-
ODBC経由の処理が遅い
-
データベースの2GBって・・・?
-
エクセルのフォームについて(...
-
今年亡くなった有名人を一発で...
-
Thunderbirdのインポートの処理...
おすすめ情報