Access VBA で、ボタンをクリックした後、変数に入っているSQL文のクエリを表示するには、どうしたら良いでしょうか?


----------
Private Sub コマンド6_Click()
Dim strQuery
strQuery = "SELECT * ・・・"

回答の条件
  • 1人2回まで
  • 登録:2008/12/06 11:56:50
  • 終了:2008/12/13 12:00:03

回答(7件)

id:degucho No.1

degucho回答回数258ベストアンサー獲得回数692008/12/06 12:47:43

ポイント23pt

表示ってどこにですか?

・MsgBoxメソッドを使う

MsgBox strQuery

・VBE上でイミィディエイトウインドウを使う

Debug.Print strQuery

・フォーム上にテキストボックスを用意する

テキスト1.Value = strQuery

など

id:yamazakiis

質問内容が足らなくて申し訳ありません。

SQL文を実行した結果をデータシートで見たいのです。

2008/12/06 23:58:58
id:fester No.2

fester回答回数124ベストアンサー獲得回数202008/12/06 13:08:07

ポイント23pt

1.メッセージボックスに表示させる。

内容が短ければ、「 MsgBox 変数名 」で表示させる。


2.ローカルウィンドウに表示させる。

moug|即効テクニック | デバッグ入門-ローカルウィンドウ


3.イミディエイトウィンドウに表示させる。(?変数名)

moug|即効テクニック | デバッグ入門-イミディエイトウィンドウ


4.イミディエイトウィンドウに表示させる。(Debug.Print)

イミディエイト ウインドウ (Ctrl+G) と Debug.Print


5.ウォッチウィンドウに表示させる。

Visual Basic コードをデバッグする

id:yamazakiis

質問内容が足らなくて申し訳ありません。

SQL文を実行した結果をデータシートで見たいのです。

2008/12/06 23:58:53
id:frkw2004 No.3

ふるるP回答回数192ベストアンサー獲得回数212008/12/06 20:40:30

ポイント22pt

どこに表示させて、誰が見るか、という観点が必要です。それを踏まえ、大体以下の方法があります。

1、 MsgBox で表示

 MsgBox "Query:" & vhCr & strQuery

 メリット: その場で分かる。OKなどでのユーザーインターフェースが必要で、実行の直前に間をおくことができる。

 デメリット:メッセージボックスの中の文字列を選択できない。あまり多い文字数は表示できない。OKで消したらその後で確認できない。

2、フォーム上にラベルやテキストボックスを配置して表示。

 Me.テキスト1.Value = strQuery

 メリット:その場で分かる。テキストボックスでコピー化にしておけばSQL文字列をコピーできる。画面が表示している間は確認できる。

 デメリット:ユーザーにとってSQLは見えるものではない。不必要な表示でスペースを使うのは無駄

3、Debug.Print でイミディエイトウィンドウに表示

 Debug.Print strQuery

 メリット:基本的に開発者だけが確認したいという時に便利。コピーも可。

 デメリット:VBAについて知識がないと使えないかも。あまり多い文字数だと消える(イミディエイトウィンドウで表示できる行数は決まっているため)

4、ファイルに保存

 メリット:処理の終わった後で確認ができる。

 デメリット:その場での確認はできない。

以上ですが、デメリットは絶対のものではありません。ctrl+Breakで処理を一時停止してイミディエイトウィンドウを確認するとかファイルの中身を確認するとかは可能です。

MsgBoxの表示内容をコピーしたい、というのは難しいですが。

お勧めはDebug.Printかファイルに出力する、です。クエリを確認したい、というのは開発中のことで、開発が終わったらクエリの中身をユーザーに見せるのは、ユーザーにとって邪魔ですから、msgboxにすると後で消さないといけないでしょう。ファイルに出力するのは、後々リリースしてからの不具合が発生したときに、重要な情報を(クエリ文字列とかね)入手することが可能になります。

作られたクエリを誰が、何の目的で使うのか、という視点で考えれば最適な方法が分かると思います。

id:yamazakiis

質問内容が足らなくて申し訳ありません。

SQL文を実行した結果をデータシートで見たいのです。

2008/12/06 23:58:45
id:degucho No.4

degucho回答回数258ベストアンサー獲得回数692008/12/07 00:08:45

ポイント22pt

そういうことでしたら

DAO.QueryDefを作成してDoCmd.OpenQueryで開いてやればいいと思います

http://www.moug.net/tech/acvba/0040007.htm

ダミーのクエリーを用意しておいてSQLプロパティを書き換えるのが楽かも

id:frkw2004 No.7

ふるるP回答回数192ベストアンサー獲得回数212008/12/07 19:33:19

ポイント10pt

単にクエリの結果が見たいということならば、クエリを編集するのが楽でしょう。

strQueryの中身の文字列をコピーしておき、クエリの編集画面にペーストして、クエリを実行させることで、クエリの実行結果がデータシートで表示されます。

データシートではないですが、イミディエイトウィンドウで、

?CurrentProject.Connection.Execute(strQuery).Fields(0).Value

でクエリの最初の列の1行目の値が表示できます。

CurrentProject.Connection.Execute(strQuery)

がクエリ結果のレコードセットになります。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません