自分用備忘録
内包しているAccessデータベースへの直接アクセスしたいとき
取得
DAOを使用する
レコードセット内のデータ取得は、レコードセットオブジェクト!カラム名
という感じで行う
Private Sub 取得ボタン_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sql As String
sql = "SELECT ID, 氏名, 電話番号 FROM 従業員マスタ"
Set db = CurrentDb
Set rs = db.OpenRecordset(sql)
Do Until rs.EOF
Debug.Print rs!ID & " " & rs!氏名 & " " & rs!電話番号
rs.MoveNext
Loop
Set rs = Nothing
Set db = Nothing
End Sub
挿入、更新、削除
戻り値が必要ない場合は、RunSQLを使用できる
挿入、更新時に、都度確認画面が表示されるので、
DoCmd.SetWarnings
にてワーニング表示を抑止している。
Private Sub 保存ボタン_Click()
Dim sql As String
Dim 数量 As Integer
数量 = テキスト1.Value
sql = "INSERT INTO テストテーブル(数量) VALUES (" & 数量 & ");"
Debug.Print sql
' データ挿入
DoCmd.SetWarnings False
DoCmd.RunSQL sql
DoCmd.SetWarnings True
End Sub
補足
Access VBAで "
をエスケープするには、 ""
と重ねればよい
Access SQLでの日付時刻を扱う際は、 #
で囲う。 #2018/10/22 12:34:56#
など。