Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1552 / 9994 ←次へ | 前へ→

【11734】Re:データのないフィールドの表示
回答  小僧  - 10/7/14(水) 8:35 -

引用なし
パスワード
   ▼MIT48 さん:
こんにちは。

> ほかの仕事に追われなかなか手がつけられず返信できませんでした。
> 申し訳ありません・・・

いえいえ、MIT48 さんのペースで大丈夫ですよ^^


>支店は全部ちゃんと表示されました。

この段階ではまだ全支店を表示する処理をしていないので、
今回たまたま元データに
全支店のデータが存在していたのかもしれませんね。


>休日でデータのない日以外クロス集計で表示されるようにでてきました。
>この状態でよろしいでしょうか?

はい、問題ないです。
次にデータのない日を表示する処理を追加します。

クロス集計クエリの列見出しを固定するには
「IN」句を使います。
年月によって31日の処理やうるう年の処理がある為、
こちらも可変にしてあげます。

Sub MakeCrossQuery2()
Dim strSQL As String
Dim strIn As String
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim QD As DAO.QueryDef
Dim MyDate As Date
Dim i As Long
  
  MyDate = #6/21/2010#
  'MyDate = CDate(Format(DMin("売上計上日", "売上テーブル"), "@@@@/@@/@@"))
  Set DB = CurrentDb
  
  'クエリ Q_Cross の存在チェック
  'なかった場合には作成
  'あった場合には使いまわし
  
  strSQL = " SELECT * FROM MsysObjects WHERE NAME ='Q_Cross'"
  
  Set RS = DB.OpenRecordset(strSQL, dbOpenSnapshot)
  If RS.EOF Then
    Set QD = DB.CreateQueryDef("Q_Cross")
  Else
    Set QD = DB.QueryDefs("Q_Cross")
  End If
  RS.Close
  
  'クロス集計クエリの作成
  
  strSQL = ""
  strSQL = strSQL & " TRANSFORM Count(売上テーブル.伝票番号) AS 伝票番号のカウント "
  strSQL = strSQL & " SELECT 売上テーブル.支店コード "
  strSQL = strSQL & " FROM 売上テーブル "
  strSQL = strSQL & " GROUP BY 売上テーブル.支店コード "
  strSQL = strSQL & " PIVOT Right([売上計上日],2) "

    'In句の作成
    '20日締めなので21日〜20日は固定
      
    Do Until Day(MyDate) = 20
      strIn = strIn & ", '" & Day(MyDate) & "'"
      MyDate = DateAdd("d", 1, MyDate)
    Loop

  strSQL = strSQL & "IN (" & Mid(strIn, 2) & ",20);"

  QD.SQL = strSQL
  QD.Close
  
  MsgBox "クロス集計クエリ作成終了"

End Sub

今回は2010年6月21日〜7月20日までの処理を想定して

> MyDate = #6/21/2010#

としておりますが、
ここの日付を変化させる事で31日が出現したり
2月の処理をプログラム上で操作する事ができます。

売上テーブルの最小の日付を
セットする様なコードでも良いかもしれませんね。

ここまで出来ましたら次は全支店を表示する処理です。


> また自分でもわからないなりにVBAを解読してみたのですが
> どういった仕様になっているのか、よければ教えてください。

解りづらい処理がありましたら
どの箇所をご提示して頂ければ
出来る限り回答させて頂きます。

614 hits

【11706】データのないフィールドの表示 MIT48 10/7/5(月) 23:41 質問[未読]
【11707】Re:データのないフィールドの表示 小僧 10/7/6(火) 9:58 発言[未読]
【11708】Re:データのないフィールドの表示 MIT48 10/7/6(火) 20:01 発言[未読]
【11709】Re:データのないフィールドの表示 小僧 10/7/6(火) 23:39 回答[未読]
【11733】Re:データのないフィールドの表示 MIT48 10/7/13(火) 18:53 発言[未読]
【11734】Re:データのないフィールドの表示 小僧 10/7/14(水) 8:35 回答[未読]
【11739】Re:データのないフィールドの表示 MIT48 10/7/17(土) 15:07 発言[未読]

1552 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078193
(SS)C-BOARD v3.8 is Free