Access VBA質問箱 IV

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

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


1547 / 9994 ←次へ | 前へ→

【11739】Re:データのないフィールドの表示
発言  MIT48  - 10/7/17(土) 15:07 -

引用なし
パスワード
   ▼小僧 さん:

また時間が空いてしまってすみません・・・m(__)m


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

集計前のデータ集計に問題があり、全データでていたみたいです


>クロス集計クエリの列見出しを固定するには
>「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

これで走らせてみたところフィールドに2桁で表示される
10日〜31日はデータ表示されるのですが、1日〜9日は表示
されませんでした。

なので
strSQL = strSQL & " PIVOT Right([売上計上日],2) "

strSQL = strSQL & " PIVOT Val(Right([売上計上日],2))"
と変更してみたらうまくいきました。


>> また自分でもわからないなりにVBAを解読してみたのですが
>> どういった仕様になっているのか、よければ教えてください。
>
>解りづらい処理がありましたら
>どの箇所をご提示して頂ければ
>出来る限り回答させて頂きます。


ありがとうございます
さっそくなのですが
Do Until Day(MyDate) = 20
>      strIn = strIn & ", '" & Day(MyDate) & "'"
>      MyDate = DateAdd("d", 1, MyDate)
>    Loop
>
この部分が今回上記の問題にもなったと思うのですが・・・
真ん中の処理がどうなっているのかぜんぜんわからなかったです

3連休ですがよろしくお願いします。

635 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 発言[未読]

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