LoginSignup
1
2

Access tip集

Last updated at Posted at 2020-06-06

#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

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2