項目
SQLの整形
概要
動的にSQLを作成する場合には、デバッグしやすいような整形をする事で作業効率がUPします。
どのぐらい整形するかはケースによって違うと思いますが、複雑なSQLや、長いSQL文を作成する場合に
SQLの整形をしていないとはまる原因となります。
イミディエイトウィンドウに出力することを前提にプログラムを書いた方がいいと思います。
例
Option Compare Database
Option Explicit
'++++++++++++++++++++++++++++++++++++++++++++
'■SQLの整形例
'++++++++++++++++++++++++++++++++++++++++++++
Function HowTo()
Dim S1 As String
Dim S2 As String
Dim S3 As String
Dim S4 As String
Dim S5 As String
'【1】
S1 = "SELECT * FROM tbl_Hoge WHERE hogeid = 1 AND hoge like 'A%'"
Debug.Print "【1】"
Debug.Print S1
Debug.Print
'【2】
S2 = "SELECT * "
S2 = S2 & "FROM tbl_Hoge "
S2 = S2 & "WHERE hogeid = 1 AND hoge like 'A%'"
Debug.Print "【2】"
Debug.Print S2
Debug.Print
'【3】
S3 = "SELECT * " & vbCrLf
S3 = S3 & "FROM tbl_Hoge " & vbCrLf
S3 = S3 & "WHERE hogeid = 1 AND hoge like 'A%'" & vbCrLf
Debug.Print "【3】"
Debug.Print S3
Debug.Print
'【4】
S4 = "SELECT * " & _
"FROM tbl_Hoge " & _
"WHERE hogeid = 1 AND hoge like 'A%'"
Debug.Print "【4】"
Debug.Print S4
Debug.Print
'【5】
'【SELECT】
S5 = "SELECT " & vbCrLf
S5 = S5 & " * " & vbCrLf
'【FROM】
S5 = S5 & "FROM " & vbCrLf
S5 = S5 & " tbl_Hoge " & vbCrLf
'【WHERE】
S5 = S5 & "WHERE " & vbCrLf
S5 = S5 & " hogeid = 1 " & vbCrLf
S5 = S5 & "AND hoge like 'A%' " & vbCrLf
Debug.Print "【5】"
Debug.Print S5
Debug.Print
End Function
イミディエイトウィンドウへ出力した結果