算術演算子
演算子 | 意味 |
---|---|
+-*/ ^ | +-×(乗算)÷(除算) ^(べき乗) |
Mod | 除算の剰余(割り算の余り |
¥ | 割り算の商(割った結果 |
Modと¥をよく忘れてしまうのでメモ
演算子一覧表
https://support.microsoft.com/ja-jp/office/%E6%BC%94%E7%AE%97%E5%AD%90%E4%B8%80%E8%A6%A7%E8%A1%A8-e1bc04d5-8b76-429f-a252-e9223117d6bd
文字列Likeの抽出条件
Like 抽出条件を使ってデータを探す
https://support.microsoft.com/ja-jp/office/like-%E6%8A%BD%E5%87%BA%E6%9D%A1%E4%BB%B6%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E6%8E%A2%E3%81%99-65b07c8a-b314-435a-8b48-2b911856d4f9
文字パターン | 意味 |
---|---|
? | 任意の一文字 |
* | 任意の文字列 |
# | 任意の一文字の数字 |
[文字列] [! 文字列] | 文字列内の一文字 !の方は文字列内以外の一文字 |
内部結合 (INNER JOIN)
構文
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
SQL INNER JOIN Keyword
https://www.w3schools.com/sql/sql_join_inner.asp
内部結合と外部結合の違い
https://medium-company.com/%E5%86%85%E9%83%A8%E7%B5%90%E5%90%88-%E5%A4%96%E9%83%A8%E7%B5%90%E5%90%88-%E9%81%95%E3%81%84/
内部結合とは両方のテーブルに共通する列があった場合に両方のテーブルの行を結合して表示する事。片方にしかない行は表示されない。table1とtable2を結合。column_name(s)は列名の意味。共通の列を( ON table1.column_name = table2.column_name)という風に書く。
''記述例
' まず「Qクエリ」というクエリを作っておく。
' Tテーブルに列名AとBがあり、Tテーブル2に列名B,Cがある。それぞれを結合する。列ABCの表が完成
'
'Dim strSQLIJ As String
'strSQLIJ = "SELECT A, B " & _
' "FROM Tテーブル" & _
' "INNER JOIN Tテーブル2 " & _
' "ON Tテーブル.B = Tテーブル2.B;"
' CurrentDb.QueryDefs("Qクエリ").SQL = strSQLIJ
'' DoCmd.SetWarings False
' DoCmd.OpenQuery "Qクエリ"
'' DoCmd.SetWarnings True
内部結合(WHERE)
SQL WHERE Clause
SELECT column1, column2, …
FROM table_name
WHERE condition;
The SQL WHERE Clause
https://www.w3schools.com/sql/sql_where.asp
condition がINNER JOINの( ON table1.column_name = table2.column_name)に該当。SELECTの中に出来上がる表のイメージを書くのでこちらの方が分かりやすいかも。WHEREに条件を書くので条件にがいとうしない行は表示されないという事もこっちの方が分かりやすい。
''記述例
' まず「Qクエリ」というクエリを作っておく。
' Tテーブルに列名AとBがあり、Tテーブル2に列名B,Cがある。それぞれを結合する。列ABCの表が完成
' 両方のテーブルに持っているものはTテーブル.Bのように書く。
'Dim strSQLWH As String
'strSQLWH = "SELECT A, Tテーブル.B, C" & _
' "FROM Tテーブル, Tテーブル2" & _
' "WHERE Tテーブル.B = Tテーブル2.B;"
' CurrentDb.QueryDefs("Qクエリ").SQL = strSQLWH
'' DoCmd.SetWarings False
' DoCmd.OpenQuery "Qクエリ"
'' DoCmd.SetWarnings True
データ型変換関数(CDate他)
構文
CDate(expression)
データ型変換関数
https://docs.microsoft.com/ja-jp/office/vba/language/concepts/getting-started/type-conversion-functions
expressionのところに変更したい値を入れる。頭にCがつく。
''記述例
''「コントロールパネル」→「時計と地域」→「日付、時刻、数値形式の設定」
''で開いたウインドウの「日付(短い形式)」で指定された形式に変更される。
'MsgBox CDate("令和4年9月3日")
'
フォーム・レポートの参照方法
'Forms("フォーム名")
'Forms!フォーム名
'Forms![フォーム名]
'Forms.フォーム名
レポートの場合も同様。どの書き方もOK。一番下の書き方が楽な気がする。Sheets(“シート名”)みたいな書き方とそろえるなら一番上もいい。
Subプロシージャ,Functionプロシージャの違い
Functionプロシージャは戻り値(処理の結果)を返すことが出来る。プロシージャからプロシージャへの値(引数)はどちらも渡せる。
sql分 UPDATE SET
UPDATE table_name
SET column1 = value1, column2 = value2, …
WHERE condition;
The SQL UPDATE Statement
https://www.w3schools.com/sql/sql_update.asp
''記述例
' まず「Qクエリ」というクエリを作っておく。
' Tテーブルに列名AとBがあり 列Bに一律 1を足す場合 (WHEREを省略)
'Dim strSQLUD As String
'strSQLUD = "UPDATE Tテーブル" & _
' "SET B = B + 1;" & _
' CurrentDb.QueryDefs("Qクエリ").SQL = strSQLUD
'' DoCmd.SetWarings False
' DoCmd.OpenQuery "Qクエリ"
'' DoCmd.SetWarnings True