-PR-
解決済み

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

  • すぐに回答を!
  • 質問No.95893
  • 閲覧数1181
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 50% (3/6)

ボロボロです。知恵が足りずとても困っています。どなたか教えてください。

テーブル「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


これで実行すると、
「コンパイルエラー メソッドまたはデータメンバが
見つかりません」
というエラーメッセージが出ます。
ちょこちょこいろんなところを修正してみても、
このメッセージだけでなく他にもいろんな
エラーメッセージが出ます。

冒頭に書いたような機能を可能にするには、
どのように記述すればよいのでしょうか??

ほんとにほんとに困っています。どなたか助けてください。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル12

ベストアンサー率 45% (207/457)

「ぼろぼろ」て言われてもね
当方では問題なくSQL文を返して来ていますが...
テーブルのデータ型はどうなっていますか?
どのような作業をされているか不明なので補足願います。
呼び元の記述もお願いします。

DAOを使っているのでMS DAO 3.6・・・は参照設定でチェックはつけて下さいね。コンパイルが通ってるので問題ないとは思いますが...
お礼コメント
boro-boro

お礼率 50% (3/6)

ほんとにどうもありがとうございました。
まだ格闘中ですが。。。がんばってみます。
投稿日時 - 2001-07-11 15:35:20
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル12

ベストアンサー率 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
補足コメント
boro-boro

お礼率 50% (3/6)

ボロボロです。
ご回答ありがとうございました。説明不足で申し訳ありません。
バージョンはAccess2000です。
もともとコンパイルは通っていたのですが、実行すると
エラーがでるような状況でした。

yanmaaさんので早速試してみたところ、コンパイルは通るのですが
なぜかFindSQLが実行されません。
マクロのプロシージャ名の記述が間違っているのでしょうか?
それとも他に原因があるのか、ほんとに何が悪いのか、
全くわかりません・・・
よろしくお願いします。
投稿日時 - 2001-06-28 10:40:03
お礼コメント
boro-boro

お礼率 50% (3/6)

早速のご回答ありがとうございます。試してみます。
投稿日時 - 2001-06-27 17:24:31

このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ