- ベストアンサー
SQL文を出力する事ってできないですか?
AccessVBAでクエリのSQL文を出力する事ってできないですか? 例えば、 クエリ1があったとして、 そのSQL文をDebug.Printで書きだしたいのですが 可能でしょうか? ADOXあたりを使えば可能でしょうか? ナビゲーションウインドウで右クリックして デザインビューで開き、SQLビューを見ればSQL文が見れますが たくさんのSQL文を取得して、 それを条件分岐したいのでVBAで書きだしたいのです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ADO/ADOXには手を出していないので可能かどうか わかりませんが(汗)、DAOであれば可能です。 以下、指定したクエリのSQL文をイミディエイトウィンドウに出力する サンプルになります: '引数「QueryName」でクエリ名を指定 'SQL文の書き出しが成功したらTrueを、失敗したらFalseを返す Public Function PrintSQL(QueryName As String) As Boolean On Error Goto エラー処理 '「DAO」への参照設定が必要 Dim dbs As DAO.Database, qdf As DAO.QueryDef Dim Rsl As Boolean, sSQL As String Set dbs = CurrentDb Set qdf = dbs.QueryDefs(QueryName) sSQL = qdf.SQL Debug.Print sSQL Rsl = True 終了処理: PrintSQL = Rsl '念のために明示的にメモリを解放 Set qdf = Nothing Set dbs = Nothing Exit Function エラー処理: MsgBox Err.Number & ":" & Err.Description,vbCritical, "PrintSQL" Rsl = False Resume 終了処理 End Function
その他の回答 (1)
- m3_maki
- ベストアンサー率64% (296/460)
Debug.Print CurrentDB.QueryDefs("クエリ1").SQL とか。
お礼
Debug.Print CurrentDB.QueryDefs("クエリ1").SQL でできました。 ADOXを使わなくてもaccess(DAO)に そういうプロパティが用意されていたのですね。 ありがとうございました。
お礼
ありがとうございます。