AccessVBA入門⑨SQL

Access

あいまい検索

Sub Test1()
  Dim StrSQL As String
  StrSQL = "SELECT 社員番号, 社員名 " & _
           "FR0M T社員名簿 " & _
           "WHERE 社員名 Like '*藤*';"
  CurrentDb.QueryDefs("Qクエリ").SQL = StrSQL
  DoCmd.OpenQuery "Qクエリ"
End Sub
Sub Test2()
  Dim StrSQL As String
  StrSQL = "SELECT 社員番号, 社員名 " & _
           "FR0M T社員名簿 " & _
           "WHERE 社員名 Like '*[藤野]*';"
  CurrentDb.QueryDefs("Qクエリ").SQL = StrSQL
  DoCmd.OpenQuery "Qクエリ"
End Sub

グループ化

Sub Test1()
  Dim StrSQL As String
  StrSQL = "SELECT 部署コード, " & _
           "Sum(年齢) AS 年齢合計 " & _
           "FR0M T社員名簿 " & _
           "GROUP BY 部署コード " & _
           "HAVING Sum(年齢) >=90;"
  CurrentDb.QueryDefs("Qクエリ").SQL = StrSQL
  DoCmd.OpenQuery "Qクエリ"
End Sub
Sub Test2()
  Dim StrSQL As String
  StrSQL = "SELECT 部署コード, " & _
           "Sum(年齢) AS 年齢合計 " & _
           "FR0M T社員名簿 " & _
           "WHERE 部署コード <> 'B001'" & _
           "GROUP BY 部署コード " & _
           "HAVING Sum(年齢) >=90;"
  CurrentDb.QueryDefs("Qクエリ").SQL = StrSQL
  DoCmd.OpenQuery "Qクエリ"
End Sub

テーブルの結合

Sub Test1()
  Dim StrSQL As String
  StrSQL = "SELECT T商品マスタ.商品コード, " & _
           "商品名, 在庫数 " & _
           "FR0M T商品マスタ " & _
           "INNER JOIN T在庫マスタ " & _
           "ON T商品マスタ.商品コード = T在庫マスタ.商品コード;"
  CurrentDb.QueryDefs("Qクエリ").SQL = StrSQL
  DoCmd.OpenQuery "Qクエリ"
End Sub
Sub Test2()
  Dim StrSQL As String
  StrSQL = "SELECT T商品マスタ.商品コード, " & _
           "商品名, 在庫数 " & _
           "FR0M T商品マスタ " & _
           "LEFT JOIN T在庫マスタ " & _
           "ON T商品マスタ.商品コード = T在庫マスタ.商品コード;"
  CurrentDb.QueryDefs("Qクエリ").SQL = StrSQL
  DoCmd.OpenQuery "Qクエリ"
End Sub
Sub Test3()
  Dim StrSQL As String
  StrSQL = "SELECT T商品マスタ.商品コード, " & _
           "商品名, 在庫数 " & _
           "FR0M T商品マスタ " & _
           "RIGHT JOIN T在庫マスタ " & _
           "ON T商品マスタ.商品コード = T在庫マスタ.商品コード;"
  CurrentDb.QueryDefs("Qクエリ").SQL = StrSQL
  DoCmd.OpenQuery "Qクエリ"
End Sub
Sub Test4()
  Dim StrSQL As String
  StrSQL = "SELECT T商品マスタ.商品コード, " & _
           "FR0M T商品マスタ " & _
           "LEFT JOIN T在庫マスタ " & _
           "ON T商品マスタ.商品コード = T在庫マスタ.商品コード " & _
           "WHERE T在庫マスタ.商品コード IS NULL;"
  CurrentDb.QueryDefs("Qクエリ").SQL = StrSQL
  DoCmd.OpenQuery "Qクエリ"
End Sub
Sub Test5()
  Dim StrSQL As String
  StrSQL = "SELECT * FROM T社員名簿 " & _
           "UNION " & _
           "SELECT * FROM T新入社員;"
  CurrentDb.QueryDefs("Qクエリ").SQL = StrSQL
  DoCmd.OpenQuery "Qクエリ"
End Sub

テーブル定義の変更

Sub Test1()
  Dim StrSQL As String
  StrSQL = "ALTER TABLE T在庫マスタ " & _
           "ADD COLUMN 備考 TEXT(4);"
  CurrentDb.QueryDefs("Qクエリ").SQL = StrSQL
  DoCmd.SetWarnings False
  DoCmd.OpenQuery "Qクエリ"
  DoCmd.SetWarnings True
End Sub
Sub Test1()
  Dim StrSQL As String
  StrSQL = "ALTER TABLE T在庫マスタ " & _
           "ADD COLUMN 備考 TEXT(4);"
  DoCmd.SetWarnings False
  DoCmd.RunSQL StrSQL
  DoCmd.SetWarnings True
End Sub
Sub Test2()
  Dim StrSQL As String
  StrSQL = "ALTER TABLE T在庫マスタ " & _
           "ALTER COLUMN 備考 TEXT(40);"
  CurrentDb.QueryDefs("Qクエリ").SQL = StrSQL
  DoCmd.SetWarnings False
  DoCmd.OpenQuery "Qクエリ"
  DoCmd.SetWarnings True
End Sub

インデックス

Sub Test1()
  Dim StrSQL As String
  StrSQL = "CREATE INDEX idx備考 " & _
           "ON T在庫マスタ(備考);"
  CurrentDb.QueryDefs("Qクエリ").SQL = StrSQL
  DoCmd.SetWarnings False
  DoCmd.OpenQuery "Qクエリ"
  DoCmd.SetWarnings True
End Sub
Sub Test2()
  Dim StrSQL As String
  StrSQL = "DROP INDEX idx備考 " & _
           "ON T在庫マスタ;"
  CurrentDb.QueryDefs("Qクエリ").SQL = StrSQL
  DoCmd.SetWarnings False
  DoCmd.OpenQuery "Qクエリ"
  DoCmd.SetWarnings True
End Sub

コメント

タイトルとURLをコピーしました