どこに表示させて、誰が見るか、という観点が必要です。それを踏まえ、大体以下の方法があります。
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にすると後で消さないといけないでしょう。ファイルに出力するのは、後々リリースしてからの不具合が発生したときに、重要な情報を(クエリ文字列とかね)入手することが可能になります。
作られたクエリを誰が、何の目的で使うのか、という視点で考えれば最適な方法が分かると思います。