Access VBA質問箱 IV

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

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


1576 / 9994 ←次へ | 前へ→

【11709】Re:データのないフィールドの表示
回答  小僧  - 10/7/6(火) 23:39 -

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

> フォームで作ることを考えて

という事ですので、VBAを使って回答させて頂きますね。

まずは準備としてテーブルの仕様固めからです。

先にご提示頂いた売上テーブルについてなのですが、
一番上のレコード

>  107 |********|20100620



> (20日締めなので21日〜20日)

という事なので存在してはいけないという事で大丈夫でしょうか?

今後の作業で 右2桁を持って日付とする様な操作が出て来るので
20100620 と 20100720 が同時に存在していると
同じ「20」という日付で集計されてしまいます。


次に

> 支店テーブル

が存在するという事ですので、

支店コード    支店名
101        A支店
102        B支店
103        C支店

の様なデータの持たせ方をして
売上テーブルは「支店コード」で管理してみましょう。

支店コード|伝票番号|売上計上日
--------------------------------
105    |********|20100621
103    |********|20100623


テーブルの準備が整いましたら VBA の出番です。

Sub MakeCrossQuery()
Dim strSQL As String
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim QD As DAO.QueryDef

  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);"

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

End Sub


上記をコピーし、標準モジュールに貼り付け実行させた後
クエリ「Q_Cross」が出来る事を確認してみて下さい。


ここまで出来ましたら段々と

> 伝票のなかった支店
>毎月ごとに自動で31があったりなかったりにできる仕様

に対応して行こうと思います。

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

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