MSAccess 全クエリをテキスト出力する方法。
2014年04月21日 11時31分21秒
こんにちは、コブラです。
Accessの全クエリから特定のカラムを見ているかどうかを調べるのに、
クエリを1つ1つ開いていたら時間がかかりすぎてしまうなあ…と思っていたら、
それを解決する策が見つかりました。
Access の全クエリーの SQL から文字列検索 – カイジのプログラマー日記様
Private Sub Command_Click() Dim Dbs As DAO.Database Dim Qdf As DAO.QueryDef Dim FileName As String Dim FNum As Integer Dim stSQL As String Dim ret As Double ' データベースセット Set Dbs = CurrentDb 'Set Dbs = DAO.OpenDatabase("c:\test.mdb") ' DBの指定がある場合 ' ファイルを開く FNum = FreeFile FileName = Mid(Dbs.Name, InStrRev(Dbs.Name, "\") + 1) FileName = Left(FileName, InStrRev(FileName, ".") - 1) FileName = "c:\" & FileName & "_Query.txt" Open FileName For Output Access Write As #FNum 'クエリ分ループ For Each Qdf In Dbs.QueryDefs 'クエリ名&SQLステートメント取得 stSQL = "QueryName:" & Qdf.Name & vbCrLf & _ "SQL:" & Qdf.SQL & vbCrLf & vbCrLf 'ファイルに出力 Print #FNum, stSQL Next Set Dbs = Nothing Close #FNum 'ファイルを開く(notepad.exe) ret = Shell("notepad.exe " & FileName, vbNormalFocus) End Sub
これを実行すれば、全クエリが指定したディレクトリにテキストファイルとして出力されます。
これなら、全クエリからカラム名で検索掛けることができますね!
ちなみに、実行方法は…
「モジュール」を新規作成し、上のコードをコピペして保存。
↓
VBの画面をAlt+F11で開き、作成したモジュールを選択。
↓
ツールバー「実行」から「Sub/ユーザフォームの実行」を選択。
最近のコメント