No.2ベストアンサー
- 回答日時:
日付から[月度]を求める式フィールドを作ります
月度: Format(DateAdd("m",-(Day([日付])>20),[日付]),"yyyy/mm")
このフィールドに抽出条件を設定します
フォームのテキストボックスに条件を入力するのなら
=Forms!フォーム名!テキストボックス名
パラメータで条件を入力するのなら
=[年月を入力してください]
いずれの場合もクロス集計クエリのパラメータ指定で
パラメータ名とデータ型を指定しておくことを忘れないでね
No.4
- 回答日時:
補足: GetDate関数とクロス集計クエリの書換えとの関係について
Private Sub コマンド0_Click()
Dim dbsCurrent As DAO.Database
Dim qdfCrossSum As DAO.QueryDef
Dim strSQL As String
strSQL = "TRANSFORM Sum(tab1.数量) AS 数量の総計 " & _
"SELECT tab1.区分, Sum(tab1.数量) AS [合計 数量] " & _
"FROM tab1 " & _
"WHERE tab1.日付 BETWEEN #1/21/2008# AND #2/20/2008# " & _
"GROUP BY tab1.区分 " & _
"PIVOT tab1.日付;"
Set dbsCurrent = CurrentDb
Set qdfCrossSum = dbsCurrent.QueryDefs("tab1のクロス集計1")
Debug.Print qdfCrossSum.SQL
dbsCurrent.QueryDefs("tab1のクロス集計1").SQL = strSQL
Debug.Print qdfCrossSum.SQL
dbsCurrent.Close
End Sub
ちょっと、手法は旧い手法ですが、これで[tab1のクロス集計1]は更新されます。
"WHERE tab1.日付 BETWEEN #1/21/2008# AND #2/20/2008# " & _
を
"WHERE tab1.日付 BETWEEN #" & Me.集計開始日 & "# AND #" & Me集計終了日 & "# " & _
とすれば、フォームのテキストボックスをクロス集計クエリに反映できます。
Me.集計開始日=GetDate(Me.年月, -1, 21)
Me.集計終了日=GetDate(Me.年月, 0, 20)
という仕掛けで getDate関数を用います。
※断片的な回答でしたので一応補足した次第です。
No.3
- 回答日時:
tab1:
ID__日付___________区分____数量
1___2007/12/20_____1_________1
2___2007/12/21_____2_________2
3___2008/01/19_____3_________3
4___2008/01/19_____3_________4
tab1のクロス集計クエリ1:
区分__合計_数量___2007/12/20___2007/12/21___2008/01/19
1__________________1__________________1
2__________________2____________________________________2
3__________________7________________________________________________________7
tab1のクロス集計クエリ2:
区分__合計_数量___2007/12/21___2008/01/19
2__________________2_________________2
3__________________7____________________________________7
TRANSFORM Sum(tab1.数量) AS 数量の総計
SELECT tab1.区分, Sum(tab1.数量) AS [合計 数量]
FROM tab1
WHERE tab1.日付 BETWEEN #12/21/2007# AND #1/20/2008#
GROUP BY tab1.区分
PIVOT tab1.日付;
クロス集計クエリ1と2の差は WHERE 節の有無です。
さて、この WHERE節の生成要領ですが、私はクエリをVBAで編集しています。
※クエリを編集する手段以外は勉強不足で知りません。
No.1
- 回答日時:
[イミディエイト]
? GetDate("2008/01/01", -1, 21)
2007/12/21
? GetDate("2008/01/01", 0, 20)
2008/01/20
ここで、21と20を GetDate関数に埋め込むのは不味いでしょうね。
しかし、要は、集計開始日と集計終了日を求めなきゃ始まらないのではと思います。
Public Function GetDate(ByVal Now As Date, _
ByVal Move As Integer, _
ByVal Hiduke As Integer) As Date
GetDate = DateSerial(DatePart("yyyy", Now), _
DatePart("m", Now) + Move - (Hiduke = 99), _
Hiduke * Abs(Hiduke <> 99))
End Function
[イミディエイト]
? GetDate("2008/01/01", +1, 1)
2008/02/01
? GetDate("2008/01/01", +1, 99)
2008/02/29
GetDate関数で翌月の1日と末日とを求めた例です。
この回答へのお礼
お礼日時:2008/01/22 13:17
早速の回答ありがとうございます。
こちらはクエリの中の抽出条件に入るのでしょうか・・・
SQLやVBを使用するのでしょうか?
初心者でちょっとわからないので・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
- Access(アクセス) お世話になっています いまクエリを作っています。。 デザインビューの画面の集計の欄で、「グループ化」 4 2022/09/17 17:03
- Excel(エクセル) EXCELピボットテーブル関数について 2 2023/04/10 20:35
- Access(アクセス) アクセスのグループ化で、 No.が10番台のJPY合計 No.が20番台のJPY合計 No.が30番 1 2022/12/20 14:39
- Excel(エクセル) 別シートに毎回異なるデータをコピーする 7 2022/06/24 09:02
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- Excel(エクセル) エクセル 条件に合う日付に入力された時間数の合計したい 4 2022/06/17 22:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスクエリの計算
-
FROM の中で CASE を使えるでし...
-
ACCESSのクエリで集計で、先頭...
-
MS-Accessのクロス集計クエリと...
-
「警告 : NULL 値は集計または...
-
Accessで年齢から年代ごとの集計
-
★アクセス2002★クロス集計で ...
-
Accessで別テーブルの個数をユ...
-
VBA 得意先ごと且つ日付ごとに...
-
Accessフォームにクロス集計ク...
-
ファイルメーカーでピボットテ...
-
桐の集計(集計行設定のこと)...
-
ロータス関数について(簡単編)
-
Access 抽出データ件数のカウン...
-
複数列フィールド値のクロス集計
-
Excel 2019 のピボットテーブル...
-
Oracle 2つのDate型の値の差を...
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
テーブルの存在チェックについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのクエリで集計で、先頭...
-
FROM の中で CASE を使えるでし...
-
AccessからExcelへエクスポート...
-
複数列フィールド値のクロス集計
-
Accessフォームにクロス集計ク...
-
VBA 得意先ごと且つ日付ごとに...
-
access 存在しない項目を”0件”...
-
桐の集計(集計行設定のこと)...
-
「警告 : NULL 値は集計または...
-
クロス集計の結果を元に戻す方法
-
Accessで別テーブルの個数をユ...
-
Access 抽出データ件数のカウン...
-
MS-Accessのクロス集計クエリと...
-
アクセス レポートのテキスト...
-
accessクロス集計で前月21日~...
-
クエリを使って縦に一行ずつ足...
-
Accessで年齢から年代ごとの集計
-
レポートウィザードの集計のオ...
-
絶対値ごとに集計したい
-
アクセスクエリ 締め日毎で絞...
おすすめ情報