Access VBA質問箱 IV

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

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


209 / 500 ページ ←次へ | 前へ→

【9080】Re:集計方法について
回答  小僧  - 07/2/2(金) 10:40 -

引用なし
パスワード
   ▼あおぎん さん:
おはようございます。

まず仕様の問題なのですが、

>名前 学校コード 月分 給食費 請求日
>A  10     1  5000  2007/01/31
>A  10     12  4800  2006/12/31
>A  10     1  -500  2007/02/16   ←追加分

クロス集計をする際に1月分の給食費を4500円にされたいのは解るのですが、
請求日については 1/31、2/16 どちらを表示させたいのでしょうか。


考え方としては

>・集計クエリのSQL
>TRANSFORM Max(P.給食費計) AS 金額の最大
>SELECT P.学校コード, P.生徒名
>FROM [
>SELECT T_支給明細_年間給食費18.生徒名, T_支給明細_年間給食費18.学校コード,T_支給明細_年間給食費18.月分 & "_月分" AS 集計,
>T_支給明細_年間給食費18.給食費計, T_支給明細_年間給食費18.給食費請求日 AS 抽出
>FROM T_支給明細_年間給食費18
>
>UNION ALL SELECT T_支給明細_年間給食費18.生徒名, T_支給明細_年間給食費18.学校コード,T_支給明細_年間給食費18.月分 & "_月分請求日" AS 集計,
>T_支給明細_年間給食費18.給食費請求日, T_支給明細_年間給食費18.給食費請求日 AS 抽出
>FROM T_支給明細_年間給食費18
>
>WHERE T_支給明細_年間給食費18.給食費請求日
>]. AS P
>WHERE (((P.抽出)>=[Forms]![F_給食費事務メニュー]![抽出給食費請求日])) OR ((([Forms]![F_給食費事務メニュー]![抽出給食費請求日]) Is Null))
>GROUP BY P.学校コード, P.生徒名
>ORDER BY P.学校コード
>PIVOT P.集計 In ("4_月分","4_月分請求日","5_月分","5_月分請求日","6_月分","6_月分請求日","7_月分","7_月分請求日","9_月分","9_月分請求日","10_月分","10_月分請求日","11_月分","11_月分請求日","12_月分","12_月分請求日","1_月分","1_月分請求日","2_月分","2_月分請求日","3_月分","3_月分請求日");

UNION以前のSQLを抜き出して見ると

SELECT T_支給明細_年間給食費18.生徒名,
    T_支給明細_年間給食費18.学校コード,
    T_支給明細_年間給食費18.月分 & "_月分" AS 集計,
    T_支給明細_年間給食費18.給食費計,
    T_支給明細_年間給食費18.給食費請求日 AS 抽出
FROM T_支給明細_年間給食費18



名前 学校コード 月分 給食費 請求日
A  10     1  5000  2007/01/31
A  10     12  4800  2006/12/31
A  10     1  -500  2007/02/16   ←追加分


これを集計してあげれば良いのですから(2/16の日付を採るとすると)

SELECT T_支給明細_年間給食費18.生徒名,
    T_支給明細_年間給食費18.学校コード,
    T_支給明細_年間給食費18.月分 & "_月分" AS 集計,
    Sum(T_支給明細_年間給食費18.給食費計) AS 給食費計,
    Max(T_支給明細_年間給食費18.給食費請求日) AS 抽出
FROM T_支給明細_年間給食費18
GROUP BY T_支給明細_年間給食費18.生徒名,
     T_支給明細_年間給食費18.学校コード,
     T_支給明細_年間給食費18.月分 & "_月分";



名前 学校コード 月分 給食費 請求日
A  10     1  4500  2007/02/16
A  10     12  4800  2006/12/31


こいつをクロス集計のクエリに使えばよいので

TRANSFORM Max(P.給食費計) AS 金額の最大
SELECT P.学校コード, P.生徒名
FROM [
SELECT T_支給明細_年間給食費18.生徒名,
    T_支給明細_年間給食費18.学校コード,
    T_支給明細_年間給食費18.月分 & "_月分" AS 集計,
    Sum(T_支給明細_年間給食費18.給食費計) AS 給食費計,
    Max(T_支給明細_年間給食費18.給食費請求日) AS 抽出
FROM T_支給明細_年間給食費18
GROUP BY T_支給明細_年間給食費18.生徒名,
     T_支給明細_年間給食費18.学校コード,
     T_支給明細_年間給食費18.月分 & "_月分"
UNION ALL
SELECT T_支給明細_年間給食費18.生徒名,
    T_支給明細_年間給食費18.学校コード,
    T_支給明細_年間給食費18.月分 & "_月分請求日" AS 集計,
    T_支給明細_年間給食費18.給食費請求日,
    T_支給明細_年間給食費18.給食費請求日 AS 抽出
FROM T_支給明細_年間給食費18
WHERE T_支給明細_年間給食費18.給食費請求日
]. AS P
WHERE (((P.抽出)>=[Forms]![F_給食費事務メニュー]![抽出給食費請求日])) OR
   ((([Forms]![F_給食費事務メニュー]![抽出給食費請求日]) Is Null))
GROUP BY P.学校コード, P.生徒名
ORDER BY P.学校コード
PIVOT P.集計
In ("4_月分","4_月分請求日","5_月分","5_月分請求日",
  "6_月分","6_月分請求日","7_月分","7_月分請求日",
  "9_月分","9_月分請求日","10_月分","10_月分請求日",
  "11_月分","11_月分請求日","12_月分","12_月分請求日",
  "1_月分","1_月分請求日","2_月分","2_月分請求日",
  "3_月分","3_月分請求日");


こんな感じになるのでしょうかね。
・ツリー全体表示

【9079】Re:Access クエリでの複数条件設定について
お礼  ななみママ  - 07/2/1(木) 16:25 -

引用なし
パスワード
   ▼小僧 さん:
返信ありがとうございます!

>あまり綺麗な方法ではないかもしれませんが、
>テキストボックスの値が Null だった場合には
>極端に小さな(大きな)日付を入れるのもいいかもしれません。

うまくいきました!
ありがとうございます(^-^)/

>こちらの意味がちょっと解りかねますが、
>テキストボックスの更新後処理にチェックすれば
>お望みの様な事はできそうな気がしますがいかがでしょうか。

こちらもできました!

>※Web上では半角カナを避けるようにしましょう。
> 現在の技術では問題はないとの意見もありますが、
> 気になるようでしたら「Web」「半角カナ」等をキーワードに
> Web検索されてみて下さい。

ご指摘ありがとうございます!
検索してみます!!

本当にありがとうございました(^○^)
・ツリー全体表示

【9078】集計方法について
質問  あおぎん  - 07/2/1(木) 15:42 -

引用なし
パスワード
   いつもお世話になっています。

毎月の給食費の支出を管理するデータベースを作っています。
毎月のデータを下のような構成のテーブル【T_支給明細_年間給食費18】に積み上げていって
名前 学校コード 月分 給食費 請求日
A  10     1  5000   2007/01/31
A  10     12  4800   2006/12/31


集計用にクロス集計クエリを作って次のような集計データを得ています。
学校コード 生徒名 ・・ 12_月分 12_月分請求日 1_月分  1_月分請求日 ・・
10     A   ・・  4800   2006/12/31  5000  2007/01/31

・集計クエリのSQL
TRANSFORM Max(P.給食費計) AS 金額の最大
SELECT P.学校コード, P.生徒名
FROM [
SELECT T_支給明細_年間給食費18.生徒名, T_支給明細_年間給食費18.学校コード,T_支給明細_年間給食費18.月分 & "_月分" AS 集計,
T_支給明細_年間給食費18.給食費計, T_支給明細_年間給食費18.給食費請求日 AS 抽出
FROM T_支給明細_年間給食費18

UNION ALL SELECT T_支給明細_年間給食費18.生徒名, T_支給明細_年間給食費18.学校コード,T_支給明細_年間給食費18.月分 & "_月分請求日" AS 集計,
T_支給明細_年間給食費18.給食費請求日, T_支給明細_年間給食費18.給食費請求日 AS 抽出
FROM T_支給明細_年間給食費18

WHERE T_支給明細_年間給食費18.給食費請求日
]. AS P
WHERE (((P.抽出)>=[Forms]![F_給食費事務メニュー]![抽出給食費請求日])) OR ((([Forms]![F_給食費事務メニュー]![抽出給食費請求日]) Is Null))
GROUP BY P.学校コード, P.生徒名
ORDER BY P.学校コード
PIVOT P.集計 In ("4_月分","4_月分請求日","5_月分","5_月分請求日","6_月分","6_月分請求日","7_月分","7_月分請求日","9_月分","9_月分請求日","10_月分","10_月分請求日","11_月分","11_月分請求日","12_月分","12_月分請求日","1_月分","1_月分請求日","2_月分","2_月分請求日","3_月分","3_月分請求日");

今までとくに支障がなかったのですが、ときどき誤請求があって、訂正分を【T_支給明細_年間給食費18】に追加した場合
名前 学校コード 月分 給食費 請求日
A  10     1  5000  2007/01/31
A  10     12  4800  2006/12/31
A  10     1  -500  2007/02/16   ←追加分

上記の集計方法だと
学校コード 生徒名 ・・ 12_月分 12_月分請求日 1_月分  1_月分請求日 ・・
10     A   ・・ 4800   2006/12/31  5000     2007/01/31
としか表示できず、-500円のデータが集計できません。

現在の自分の知識では、追加の月分を 1-1など枝番でテーブルに追加し、
学校コード 生徒名 ・・ 12_月分 12_月分請求日 1_月分  1_月分請求日 1-1_月分 1-1月分請求日 として表示させるなどの方法しか思いつかないのですが、そうすると1月分を抽出したいときや、月ごとの並べ替えに都合が悪くなりそうで、
できれば、
学校コード 生徒名 ・・ 12_月分 12_月分請求日 1_月分  1_月分請求日 ・・
10     A   ・・ 4800   2006/12/31   5000    2007/01/31
10     A                   -500   2007/02/16

と表示するような方法があればと思うのですが・・。
もしご存知でしたらご教示をお願いします。

また、こういうケースを想定した場合のテーブルの構成方法や集計方法等でいい方法があればご教示いただけると大変助かります。

長々とすみません。
よろしくお願いいたします。
(Win 2000 Access2000)
・ツリー全体表示

【9077】Re:Access クエリでの複数条件設定について
回答  小僧  - 07/2/1(木) 15:35 -

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

>これに全レコードを抽出するための、Like [ ] & "*"
>をどうつければよいのでしょうか?

あまり綺麗な方法ではないかもしれませんが、
テキストボックスの値が Null だった場合には
極端に小さな(大きな)日付を入れるのもいいかもしれません。


Between Nz([Forms]![起動画面2]![期間指定開始],#1900/1/1#) And 
    Nz([Forms]![起動画面2]![期間指定終了],#2050/12/31#)


開始日にのみ日付が入っていた場合はその日以降を
終了日にのみ日付が入っていた場合はその日以前を、
両方とも入っていなかった場合は全ての日付が抽出できるかと思われます。


> また、開始日<終了日 となる条件もつけたいのですが…

こちらの意味がちょっと解りかねますが、
テキストボックスの更新後処理にチェックすれば
お望みの様な事はできそうな気がしますがいかがでしょうか。


※Web上では半角カナを避けるようにしましょう。
 現在の技術では問題はないとの意見もありますが、
 気になるようでしたら「Web」「半角カナ」等をキーワードに
 Web検索されてみて下さい。
・ツリー全体表示

【9076】Access クエリでの複数条件設定について
質問  ななみママ  - 07/2/1(木) 14:00 -

引用なし
パスワード
   テーブルに、「受付日」フィールドを設定し、フォーム上のテキストボックスから、
期間指定をしたいのですが、期間を指定しなかった場合に、全レコードを抽出するには
どうしたらよいのでしょうか?

Between [Forms]![起動画面2]![期間指定開始] And [Forms]![起動画面2]![期間指定終了]

これに全レコードを抽出するための、Like [ ] & "*"
をどうつければよいのでしょうか?
また、開始日<終了日 となる条件もつけたいのですが…
・ツリー全体表示

【9075】Re:Wordに差込み印刷
お礼  えん  - 07/1/31(水) 22:32 -

引用なし
パスワード
   ▼小僧 さん:
アドバイスありがとう御座います。
AccessのVBAではなくWordのVBAになるんですね。
そちらの方も勉強してみます。
・ツリー全体表示

【9074】Re:Access コマンドボタンからの印刷プレビュー
お礼  ななみママ  - 07/1/31(水) 17:32 -

引用なし
パスワード
   ▼クロ さん:
>レポート自身には何もイベントは指定していませんよね?
>
>印刷できるボタンの方の
>DoCmd.OpenReport stDocName, acNormal
>
>acNormalをacPreview
>にして、印刷ボタンを押してもプレビューされませんか?

プレビューされました!!
これで対応しようと思います (^。^*))((^O^)v
本当に本当に、今日1日ありがとうございました!

>
>あと、機械翻訳なので変なのですが…
>http://support.microsoft.com/kb/824181/ja
>もみてください。
>※httpは全角なので半角にしてください。

見てみます!
・ツリー全体表示

【9073】Re:Access コマンドボタンからの印刷プレビュー
発言  クロ  - 07/1/31(水) 17:19 -

引用なし
パスワード
   提示URLはAccess プロジェクト (.adp) のようなので違うようですね。
スミマセン
・ツリー全体表示

【9072】Re:Access コマンドボタンからの印刷プレビュー
回答  クロ  - 07/1/31(水) 17:13 -

引用なし
パスワード
   レポート自身には何もイベントは指定していませんよね?

印刷できるボタンの方の
DoCmd.OpenReport stDocName, acNormal

acNormalをacPreview
にして、印刷ボタンを押してもプレビューされませんか?

あと、機械翻訳なので変なのですが…
http://support.microsoft.com/kb/824181/ja
もみてください。
※httpは全角なので半角にしてください。
・ツリー全体表示

【9071】Re:Access コマンドボタンからの印刷プレビュー
発言  ななみママ  - 07/1/31(水) 17:04 -

引用なし
パスワード
   ▼クロ さん:
>それとコマンドボタンを配置しているフォームのプロパティ(レポートの時と
>同じ風にみてください。)で「その他」タブのポップアップはどうなってますか?
>
>これが「はい」になっていて、フォーム自体を最大化しているとレポートが
>バックグラウンドに開くので見えないかもしれません。

「いいえ」になってました(ToT)
う〜〜ん(・_・、
・ツリー全体表示

【9070】Re:フォーム・レポートのフォント統一
発言    - 07/1/31(水) 17:04 -

引用なし
パスワード
   こんにちわ。雅です。

コントロールを作るときツールボックスの作りたいコントロールを触ると
マウスカーソルがラベルなら+Aとかに変わります。
そのときプロパティウィンドウを表示しているとタイトルが「規定のラベル」
となっています。
このの内容を変更すると次回からその設定でコントロールが作成できます。
他のコントロールも同じ

#そういうことじゃない?

でわ。
・ツリー全体表示

【9069】Re:Lineメソッドを使用して罫線を出力したい...
お礼  そら坊  - 07/1/31(水) 16:48 -

引用なし
パスワード
   雅さん、ありがとうございました!
どうにか満足する結果が得られました!!
・ツリー全体表示

【9068】Re:Access コマンドボタンからの印刷プレビュー
発言  クロ  - 07/1/31(水) 16:47 -

引用なし
パスワード
   ツリーが長くなったので横にずれます。
・ツリー全体表示

【9067】Re:Access コマンドボタンからの印刷プレビュー
回答  クロ  - 07/1/31(水) 16:32 -

引用なし
パスワード
   それとコマンドボタンを配置しているフォームのプロパティ(レポートの時と
同じ風にみてください。)で「その他」タブのポップアップはどうなってますか?

これが「はい」になっていて、フォーム自体を最大化しているとレポートが
バックグラウンドに開くので見えないかもしれません。
・ツリー全体表示

【9066】Re:Access コマンドボタンからの印刷プレビュー
回答  ななみママ  - 07/1/31(水) 16:30 -

引用なし
パスワード
   ▼クロ さん:
>ほぇーーー
>
>DoCmd.OpenReport "ここにレポート名", acViewPreview
>
>ではどうでしょ?

だめでした………(/_;)(/_;)(/_;)
なんでなんでしょう???
・ツリー全体表示

【9065】Re:Access コマンドボタンからの印刷プレビュー
回答  クロ  - 07/1/31(水) 16:25 -

引用なし
パスワード
   ほぇーーー

DoCmd.OpenReport "ここにレポート名", acViewPreview

ではどうでしょ?
・ツリー全体表示

【9064】Re:Access コマンドボタンからの印刷プレビュー
回答  ななみママ  - 07/1/31(水) 16:22 -

引用なし
パスワード
   ▼クロ さん:
>レポート自身を手動でプレビューには出来ますか?

できます!
・ツリー全体表示

【9063】Re:Accessタイトルバーのxボタン無効化
発言    - 07/1/31(水) 16:20 -

引用なし
パスワード
   こんにちわ。雅です。

参考になりますか?
miyabi.la.coocan.jp/technic/index.php?ID=1&Category=1&Topic=5

でわ。
・ツリー全体表示

【9062】Re:Lineメソッドを使用して罫線を出力したい...
発言    - 07/1/31(水) 16:16 -

引用なし
パスワード
   こんにちわ。雅です。

>以下のとおりにLineメソッドを利用して、3ポイントの罫線を出力しようとしていますが、ポイントが変わりません。何故でしょうか?

DrawWidthはポイントではなくピクセル単位ですよ。

でわ。
・ツリー全体表示

【9061】Re:Access コマンドボタンからの印刷プレビュー
発言  クロ  - 07/1/31(水) 16:12 -

引用なし
パスワード
   レポート自身を手動でプレビューには出来ますか?
・ツリー全体表示

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