Access VBA質問箱 IV

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

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


1395 / 2272 ツリー ←次へ | 前へ→

【7350】クエリの作成 コマ 06/2/21(火) 21:25 質問[未読]
【7355】Re:クエリの作成 小僧 06/2/22(水) 11:34 回答[未読]
【7362】Re:クエリの作成 コマ 06/2/23(木) 10:00 質問[未読]
【7367】Re:クエリの作成 小僧 06/2/23(木) 11:42 回答[未読]
【7372】Re:クエリの作成 コマ 06/2/23(木) 14:11 お礼[未読]

【7350】クエリの作成
質問  コマ  - 06/2/21(火) 21:25 -

引用なし
パスワード
   コマです。
お助け下さい。
今、商品の在庫問合せの画面を作成中です。
テーブルは入庫テーブルと出庫テーブルの2つあります。
商品CDをキーにして日付(入庫日と出庫日)ごとに入庫数と出庫数を並べて表示したいのです。

フォーム
商品CD  日付    入序数   出庫数   残高
aaa  06.02.01   100          100
aaa  06.02.02          30    70
aaa  06.02.03   10      5    75

入庫テーブル
商品CD  入庫日  入庫数
aaa   06.02.01  100
aaa   06.02.03   10
出庫テーブル
商品CD  出庫日  出庫数
aaa   06.02.02   30

以上のような条件で入出庫クエリを作成したいのでが上手く出来ません。
クエリでは難しい事なのですか。
よろしくご教授をお願いします。

【7355】Re:クエリの作成
回答  小僧  - 06/2/22(水) 11:34 -

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

>以上のような条件で入出庫クエリを作成したいのでが上手く出来ません。

まず、テーブルの構成が変更可能でしたら

入出庫テーブル
ID    商品CD    日付         種別   個数
1    aaa    2006/02/01    入庫    100
2    aaa    2006/02/02    出庫     30
3    aaa    2006/02/03    入庫     10
4    aaa    2006/02/03    出庫     5

という形の方が望ましいです。変更が無理なようでしたら、

SELECT 入庫テーブル.商品CD,
    入庫テーブル.入庫日,
    '入庫' AS 種別,
    入庫テーブル.入庫数 AS 個数
FROM 入庫テーブル
UNION ALL
SELECT 出庫テーブル.商品CD,
    出庫テーブル.出庫日,
    '出庫' AS 種別,
    出庫テーブル.出庫数 AS 個数
FROM 出庫テーブル;

上記 SQL をクエリの SQL ビューに記載して、そのクエリを代用して下さい。

日付のフィールドが

>06.02.03   

となっていますが、日付/時刻型のフィールドに変更し
「2006/02/03」とした方が後々の管理が楽になると思われます。


さてここまで準備ができましたら、下記 SQL をクエリの SQL ビューに記載して
結果を確認されてみて下さい。

TRANSFORM Sum(入出庫テーブル.個数) AS 個数の合計
SELECT 入出庫テーブル.商品CD, 入出庫テーブル.日付,
Nz(DSum("個数","入出庫テーブル","種別='入庫' AND 日付 <=#" & 日付 & "#"),0) -
Nz(DSum("個数","入出庫テーブル","種別='出庫' AND 日付 <=#" & 日付 & "#"),0) AS 残高
FROM 入出庫テーブル
GROUP BY 入出庫テーブル.商品CD, 入出庫テーブル.日付,
Nz(DSum("個数","入出庫テーブル","種別='入庫' AND 日付 <=#" & 日付 & "#"),0) -
Nz(DSum("個数","入出庫テーブル","種別='出庫' AND 日付 <=#" & 日付 & "#"),0)
PIVOT 入出庫テーブル.種別;

【7362】Re:クエリの作成
質問  コマ  - 06/2/23(木) 10:00 -

引用なし
パスワード
   ▼小僧 さん:
ご教授ありがとう御座いました。
希望する入庫データと出庫データの1本化はできました。
ただ、表示用のクエリの項目の並び方が以下のようになります。

商品CD 日付 残高 出庫数 入庫数

フォームの表示の仕方でデータシート指定で表示をしたいのですが、
(商品CD 日付 入庫数 出庫数 残高 の順に表示したいのでが)

教えていただいたSQLから項目の順序を変えようとしたのですが
上手くできません。

もう一度、ご教授をお願いしたいのですが どうぞよろしくお願いします。

【7367】Re:クエリの作成
回答  小僧  - 06/2/23(木) 11:42 -

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


>SQLから項目の順序を変えようとしたのですが上手くできません。

クロス集計している項目の順序を入れ替えるのでしたらクエリをデザインビューで開き、

ツールバーから [表示] → [プロパティ] → [クエリ列見出し] の欄に

"入庫","出庫"

と記入すると並び替えることが可能です。


ですが、今回は残高はクロス集計の対象でないのでココでの設定は無理ですね。


>フォームの表示の仕方でデータシート指定で表示をしたいのですが、

という事ですので、フォームに対応してもらいましょう。

フォームをデータシートビューで開いた状態で「残高」の列をクリックします。

列全体が選ばれている状態になりましたら
左クリックでドラッグして「出庫」の右側でドロー。


見た目上の順序が入れ替わると思いますがいかがでしょうか。

【7372】Re:クエリの作成
お礼  コマ  - 06/2/23(木) 14:11 -

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

ありがとうございました。

お蔭で希望通りの仕組みが出来そうです。

本当にありがとうございました。

1395 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free