アクセス小僧:レコード移動したとき、同じ月のレコード数をカウント [コンピューター]
アクセスのフォームで、
レコード移動したとき、同じ月のレコード数をカウントするマクロを作りました。
テーブルには、1月1日から12月31日までのレコードが登録されています。
例えば、8月6日のレコードを開いたら、8月のレコード数、
すなわち、8月1日から8月31日までのレコード数をカウントします。
同じ月のレコードを抽出するため、次の様なDCountを使います。
DCount("*", "T_テーブル", "[日付]>=#2017/8/1# And [日付]<#2017/9/1#")
つまり、レコードの日付が2017/8/1以上で、2017/9/1より小さい日を抽出しています。
2つ目の条件が翌月の1日と比較しているのは、月末日が28, 29, 30, 31と月によって変動
するので、マクロを簡単にするためです。
マクロのコードを以下に示します。
Private Sub Form_Current()
'【機能1】レコード移動したとき、同じ月のレコード数をカウント
'【変数】
Dim myDate1 As Date ' 日付
Dim myYear As Integer ' 年
Dim myMonth As Integer ' 月
'【コード】
myDate1 = [日付]
myYear = Year(myDate1)
myMonth = Month(myDate1)
Select Case myMonth
Case 12
[月レコード数] = (DCount("*", "T_テーブル", "[日付]>=#" & myYear & "/12/1#" _
& " And [日付]<#" & myYear + 1 & "/1/1#"))
Case Else
[月レコード数] = (DCount("*", "T_テーブル", "[日付]>=#" & myYear & "/" & myMonth & "/1#" _
& " And [日付]<#" & myYear & "/" & myMonth + 1 & "/1#"))
End Select
End Sub
カレントレコードの日付フィールドから、日付を取ってきて、年(myYear)と月(myMonth)を抽出、
DCountの条件式を作っています。
【2017/12/29 変更】12月の場合、12月1日以上、翌年の1月1日より小さい日となるため、式を分けました。
レコード移動したとき、同じ月のレコード数をカウントするマクロを作りました。
テーブルには、1月1日から12月31日までのレコードが登録されています。
例えば、8月6日のレコードを開いたら、8月のレコード数、
すなわち、8月1日から8月31日までのレコード数をカウントします。
同じ月のレコードを抽出するため、次の様なDCountを使います。
DCount("*", "T_テーブル", "[日付]>=#2017/8/1# And [日付]<#2017/9/1#")
つまり、レコードの日付が2017/8/1以上で、2017/9/1より小さい日を抽出しています。
2つ目の条件が翌月の1日と比較しているのは、月末日が28, 29, 30, 31と月によって変動
するので、マクロを簡単にするためです。
マクロのコードを以下に示します。
Private Sub Form_Current()
'【機能1】レコード移動したとき、同じ月のレコード数をカウント
'【変数】
Dim myDate1 As Date ' 日付
Dim myYear As Integer ' 年
Dim myMonth As Integer ' 月
'【コード】
myDate1 = [日付]
myYear = Year(myDate1)
myMonth = Month(myDate1)
Select Case myMonth
Case 12
[月レコード数] = (DCount("*", "T_テーブル", "[日付]>=#" & myYear & "/12/1#" _
& " And [日付]<#" & myYear + 1 & "/1/1#"))
Case Else
[月レコード数] = (DCount("*", "T_テーブル", "[日付]>=#" & myYear & "/" & myMonth & "/1#" _
& " And [日付]<#" & myYear & "/" & myMonth + 1 & "/1#"))
End Select
End Sub
カレントレコードの日付フィールドから、日付を取ってきて、年(myYear)と月(myMonth)を抽出、
DCountの条件式を作っています。
【2017/12/29 変更】12月の場合、12月1日以上、翌年の1月1日より小さい日となるため、式を分けました。
ヤバイぜ! ありがとうございます[__猫]
by cheese999 (2017-08-06 13:28)
12月の式を変更しました。
by cheese999 (2017-12-29 07:29)