Accessむかむか ホーム >> TIPS一覧 >> TIPS

項目

 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

イミディエイトウィンドウへ出力した結果
Copyright (C) Accessむかむか