Access勉強(INSERT INTO, DataAdd, ファイル出力)

レコードを追加する(単一レコードを追加)

レコードを追加する(単一レコードを追加)
構文:INSERT INTO target [(field1[, field2[, …]])] VALUES (value1[, value2[, …])
「field1 field2」は列名の事。([])は書かなくてもOKの意味「value1」が書き入れたい値 その行の全部の値を入れるならfield名の入力は省ける。

' 記述例  
' まず「Qクエリ追加」というクエリを作っておく。
' T追加テーブルに列名AとBあり、それぞれにAAAとBBBを追加する場合
' Dim strSQLRaddT As String
' strSQLRaddT = "INSERT INTO T追加テーブル(A,B) VALUES('AAA', 'BBB');"
' ↑こう書いてもOK strSQLRaddT = "INSERT INTO T追加テーブル VALUES('AAA', 'BBB');"
' CurrentDb.QueryDefs("Qクエリ追加").SQL = strSQLRaddT 
'' DoCmd.SetWarings False
' DoCmd.OpenQuery "Qクエリ追加"
'' DoCmd.SetWarnings True

INSERT INTO ステートメント (Microsoft Access SQL)

https://docs.microsoft.com/ja-jp/office/client-developer/access/desktop-database-reference/insert-into-statement-microsoft-access-sql

日付を編集する関数

構文 : DateAdd ( interval, number, date )
「interval」は年か月か日付から選ぶ。「number」が足す数。「date」が足される数。

' 記述例  2022年8月28日に365日を足す
' 
'Dim date1 As Date
'date1 = #8/28/2022#

'  MsgBox DateAdd("d", 365, date1)
'  MsgBox DateAdd("m", 12, date1)
'  MsgBox DateAdd("yyyy", 1, date1)

DateAdd 関数

https://support.microsoft.com/ja-jp/office/dateadd-%E9%96%A2%E6%95%B0-63befdf6-1ffa-4357-9424-61e8c57afc19

ユーザー入力から値を獲得する

構文:InputBox(prompt, [ title ], [ default ], [ xpos ], [ ypos ], [ helpfile, context ])

「prompt」はメッセージ。「title」は見出し, 「default」は初期値。あとは場所とかヘルプファイルとか…。

'記述例
'Dim 文字列だ As String
'  文字列だ = InputBox("文字を入れて下さい。数字でなく…", "文字を入力", "初期値")
'  MsgBox 文字列だ

InputBox 関数

https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/inputbox-function

Excelファイルへ出力

構文 expression.TransferSpreadsheet (TransferType, SpreadsheetType, TableName, FileName, HasFieldNames, Range, UseOA)
expression: DoCmd オブジェクトを表す変数。「TransferType」でacExportを選ぶ。インポートの場合はacImport。「SpreadsheetType」は省略すると最新のxlsx形式になる。「TableName」は出力したい表を選ぶ。「FileName」でパスを全部書く。「HasFieldNames」をTrueにすると1行目をフィールド名にする。

''記述例  
''テーブル名「T_テスト」を出力する方法。あらかじめC直下にtestフォルダを作っておくことが必要。
'DoCmd.OpenTable "T_テスト", , acReadOnly
'DoCmd.TransferSpreadsheet acExport, , "T_テスト", "C:\test\test.xlsx"

DoCmd.TransferSpreadsheet メソッド (Access)

https://docs.microsoft.com/ja-jp/office/vba/api/access.docmd.transferspreadsheet
投稿日:
カテゴリー: VBA

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA