goo blog サービス終了のお知らせ 

Excel Access VBA と スマホに一眼レンズ と 一眼カメラ

ExcelAccessのVBAの覚書とスマホに一眼レンズをつけて写真を撮ってみました 一眼カメラの写真もあります

クエリをVBAで記述する

2016-05-31 16:15:03 | AccessVbaの備忘録

削除クエリ
Dim SQL As String
SQL = "DELETE * FROM テーブル名 where 絞り込むフィールド名='条件'"
DoCmd.RunSQL SQL

追加クエリ
Dim SQL As String
SQL = "INSERT INTO 追加先TB (フィールド名1,フィルド名2) SELECT 元TB.フィールド名1,元TB.フィールド名2 FROM 元TB where 絞り込むフィールド名='条件' "
DoCmd.RunSQL SQL

追加クエリで追加元テーブルを変数にする
テーブル名を入力するフォームをF001、テキストボックスをT001とします
Dim SQL As String
SQL = "INSERT INTO 追加先TB (フィールド名1,フィルド名2) SELECT table1.フィールド名1,table1.フィールド名2 FROM " & Forms!F001!T001 & " as table1 where 絞り込むフィールド名='条件' "
DoCmd.RunSQL SQL

更新クエリ
Dim SQL As String
SQL = "Update テーブル名 Set フィールド名 = '値' "
DoCmd.RunSQL SQL

結合クエリ RIGHT JOIN LEFT JOIN INNER JOIN
Dim db As DAO.Database
Dim Qdf As DAO.QueryDef
Dim SQL As String
Set db = CurrentDb()
SQL = "SELECT * FROM テーブル1 LEFT JOIN テーブル2 ON テーブル1.フィールド名 = テーブル2.フィールド名"
Set Qdf = db.CreateQueryDef("Q_テスト", SQL)
DoCmd.OpenQuery Qdf.Name
db.Close: Set db = Nothing

選択クエリで抽出条件を××を含む(文字列)を複数にした場合
SQL = "SELECT * FROM テーブル1 where テーブル1.フィールド名 like '*条件1*' or テーブル1.フィールド名 like '*条件2*' "

クエリを削除します
DoCmd.DeleteObject acQuery, "クエリ名"

目次へ


フォームを開くとき絞込み

2016-05-30 21:00:24 | AccessVbaの備忘録
開くフォームを F001 絞り込む条件が入力されているフォームを F002 とします
F001のフィールド フィールド名1 フィールド名2
F002のフィールド フィールド名A

特定のフィールドがNULL以外で絞り込み
stDocName = "F001 "
stLinkCriteria = "[フィールド名1] is not null"
DoCmd.OpenForm stDocName, acNormal, , stLinkCriteria

複数の条件で絞り込み
stDocName = "F001"
stLinkCriteria = "[フィールド名1]= forms!F002!フィールド名A and [フィールド名2]='条件'"
DoCmd.OpenForm stDocName, acNorma, , stLinkCriteria

絞り込み解除
  Forms.フォーム名.FilterOn = False

目次へ