-PR-
解決済み

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

  • すぐに回答を!
  • 質問No.95893
  • 閲覧数1174
  • ありがとう数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
関連するQ&A
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル12

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

Accessのバージョンは記載した方が良いですよ。 大抵レコードセットをパブリックで指定しているのが悪いのでしょう。 通常は実行ではなく「コンパイル」をしてエラー個所を修正した方が良いですね。 下記の内容でコンパイルは通りました。 Public Function FindSQL(No As String) Dim db As Database Dim rs As Recordset ...続きを読む
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で解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

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

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ