#VBAで一行以上あるないかの判定
If DCount("フィールド名", "クエリ名") > 0 Then
#四則演算
- [A] \ [B]で割り算の商のみ表示
- [A] / [B]で割り算
- [A] Mod [B]で割り算の余りのみを表示
#日付/時間 操作
- DateAdd(単位, 時間, 日時) yyyyとか、m,d,h,n,sで単位指定
- DateAdd("ww", 2, #2017/5/10#) 2017/05/24 2017/5/10 の2週間後
- DateAdd("m",1,#2017/1/30#) 2017/02/28 2017/1/30の1カ月後、2月に30日がないので2月末日が返される
- DateAdd("ww", 2, Null) Null 引数日時がNull値の場合、戻り値はNull値
- DateAdd("ww", Null, #2017/5/10#) エラー 引数時間がNull値の場合、エラーになる
#オートナンバーを再走する
TableReNew ("テーブルA")
Function TableReNew(Spec)
DoCmd.SetWarnings WarningsOn:=False
Dim tableName
Dim Newtable
tableName = Spec
DoCmd.CopyObject , "Newtable", acTable, tableName
DoCmd.DeleteObject acTable, tableName
DoCmd.Rename tableName, acTable, "Newtable"
DoCmd.SetWarnings WarningsOn:=True
End Function
#Access ファイルサイズ問題
- クエリを実行するだけでファイルは大きくなる。
- 他PCなどに転送する前に、「データベースの最適化・修復」をやる。
- それだけで膨れ上がったファイルサイズが最小のものになる。
#インポート定義を編集
クエリに直接、SQL文を直接入力すると参照して、編集できる。
SELECT MSysIMEXColumns.SpecID, SpecName, FieldSeparator,
FieldName, DataType, IndexType, SkipColumn
FROM MSysIMEXColumns INNER JOIN MSysIMEXSpecs
ON MSysIMEXColumns.SpecID = MSysIMEXSpecs.SpecID
ORDER BY MSysIMEXColumns.SpecID;
#VBA export
テーブルエクスポート
Dim Path As String
Path = CreateObject("WScript.Shell").Specialfolders("Desktop") & "\" & "住所録.csv"
DoCmd.TransferText acExportDelim, , "T_住所録", Path, True, ""
MsgBox "エクスポートされました"
###クエリを外部にエクスポート
stDocName = "c:\data\abcexp.csv"
DoCmd.TransferText acExportDelim, , "abcexp", stDocName, False
#VBA inport
###VBAでエクセルをインポート
Private Sub Excel読み込みボタン_Click()
DoCmd.TransferSpreadsheet acImport, , "商品管理テーブル", "K:\~\Accessに追加用商品管理データ.xlsx", True
MsgBox ("Excelのデータを取り込みました。")
Exit Sub
End Sub