
いつも大変お世話になっております。m(_ _)m
また質問させてください。
Accessで、在庫表を作っています。
「入庫情報_テーブル」と「出庫情報_テーブル」があり、それぞれのテーブルは、製品名(型番)と数量の情報を持っています。
入庫情報の数量はプラスして、出庫情報の数量はマイナスして、差引きの在庫表を作りたいのですが・・・
入庫情報に入っている製品名のすべてを表示して、出庫情報の数量をマイナスする・・・というのは、「結合のプロパティ」で、入庫情報の全レコードと・・・というオプションを選べば可能です。
またその逆も可能なわけですが、両方を全部表示したい時はどうすればいいのでしょうか?
つまり、入庫情報に入力されている商品で出庫情報にのっていないものと、出庫情報に入力されている商品で入庫情報にのっていないものがあるわけです。
在庫表では、それぞれのテーブルに存在するすべての製品名を載せ、型番が合致した場合は、入庫数量-出庫数量で在庫を出したいのです。
出庫情報にあって、入庫情報にないものというのは、つまり、在庫数がマイナスになるということです。
両方を同時に満たすには、どのようにすればいいのでしょうか?
質問の説明文が不足していたら指摘してください。
よろしくお願いします。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
s_husky です。
<入庫履歴>
ID 入庫日 製品名 数量
1 2006/10/01 A 2
2 2006/10/02 A 2
3 2006/10/03 B 2
<出庫履歴>
ID 出庫日 製品名 数量
1 2006/11/01 A 1
2 2006/11/02 A 1
3 2006/11/03 C 1
<在庫表>
製品名 数量
A 2
B 1
A -2
C -1
<入庫履歴>と<出庫履歴>から<在庫表>を生成するという手もあります。
Private Sub コマンド0_Click()
CnnExecute ("DELETE FROM 在庫表")
CnnExecute ("INSERT INTO 在庫表 " & _
SELECT 製品名, COUNT(数量) AS 数量 FROM 入庫履歴 GROUP BY 製品名")
CnnExecute ("INSERT INTO 在庫表 " & _
SELECT 製品名, COUNT(数量) * -1 AS 数量 FROM 出庫履歴 GROUP BY 製品名")
End Sub
なお、CnnExecute() は次のようです。
Public Function CnnExecute(ByVal strSQL As String) As Boolean
On Error GoTo Err_CnnExecute
Dim isOK As Boolean
Dim cnn As ADODB.Connection
isOK = True
Set cnn = CurrentProject.Connection
With cnn
.Errors.Clear
.BeginTrans
.Execute strSQL
.CommitTrans
End With
Exit_CnnExecute:
On Error Resume Next
cnn.Close
Set cnn = Nothing
CnnExecute = isOK
Exit Function
Err_CnnExecute:
isOK = False
If cnn.Errors.Count > 0 Then
ErrMessage cnn.Errors(0), strSQL
cnn.RollbackTrans
Else
MsgBox "プログラムエラーが発生しました。システム管理者に報告して下さい。(CnnExecute)", _
vbExclamation, " 関数エラーメッセージ"
End If
Resume Exit_CnnExecute
End Function
詳細な返答ありがとうございました。
少し時間がかかるかと思いますが、挑戦してみます。
再度、質問させていただく場合もありますが、その時はよろしくお願いします。m(_ _)m
No.4
- 回答日時:
No3でも書かれてるけど、UNIONクエリを使った方法を
select 製品名
from 出庫
UNION select 製品名
from 入庫;
で、とりあえずは、「ユニオン」って名前で今回は保存します。
そのクエリを元に、
SELECT ユニオン.製品名, 入庫.数量 AS 入庫数, 出庫.数量 AS 出庫数, nz([入庫数])-nz([出庫数]) AS 在庫
FROM (ユニオン LEFT JOIN 出庫 ON ユニオン.製品名 = 出庫.製品名) LEFT JOIN 入庫 ON ユニオン.製品名 = 入庫.製品名;
で、どうでしょう?
後、件数があるならば、テーブル作成クエリで、入庫テーブルから製品名と数量(入庫数)、そして出庫数(0にしとく)の作業テーブルを作成。
追加クエリで、入荷テーブルに無い在庫テーブルの製品名を追加、この時、入庫数は0にしとく。
更新クエリで、出庫数を更新・・・
ただ、繰り返しやってるとMDBがよく壊れるので、作業テーブルを外部のMDBにするのと、まめな修復・最適化が必要ですが・・・
返答ありがとうございました。
ユニオンクエリというのは、初挑戦ですが、ヘルプ等を参照しながら、挑戦してみたいと思います。
時間がかかるかもしれませんが、また再度、ご質問等させていただくかと思います。よろしくお願いします。
No.3
- 回答日時:
ご希望のような結合のことをフル外部結合と言います
ただしこれはAccessではサポートされていませんから
入庫から出庫へ外部結合したものと出庫から入庫へ外部結合したものを
ユニオンクエリで重複なしで、縦に結合します
詳細が分からないので雰囲気だけ
select ・・・・・・
from 入庫情報_テーブル left join 出庫情報_テーブル
union
select ・・・・・・
from 入庫情報_テーブル right join 出庫情報_テーブル
No.1
- 回答日時:
[製品一覧]
ID----------- 1
品名--------- A
前月期首----- 1
前月入庫----- 1
前月出庫----- 0
当月入庫----- 1
当月出庫----- 2
[入庫履歴]
入庫日------- 2006/11/11
製品_ID------ 1
数量--------- 1
[出庫履歴]
入庫日------- 2006/11/16
製品_ID------ 1
数量--------- 2
[各種設定]
現在庫締日--- 2006/10/31
というテーブル設計ですと話が簡単です。
[各種設定.現在庫締日]に基づいて[製品一覧.前月期首]等を更新すればいいからです。
さて、質問内容からすると、次の設計でも良い気もします。
[製品一覧]
ID----------- 1
品名--------- A
入庫総計----- 1
出庫出庫----- 2
であれば、単純に入出庫履歴を集計するだけです。
※質問の意図に反した回答であることは重々に承知しています。
※が、少なくとも、[製品一覧]、[入庫履歴]、[出庫履歴]という3テーブルをお勧めします。
※[各種設定]は、棚卸処理コードを書くことを意味しますのでウーンです。
早速のお返事ありがとうございました。
確かに、「製品マスタ」が存在すれば、一番楽なことは分かっているのですが、現状ではそれが不可能な業務状況でして・・・(^^;)
すみません。
テーブル設計が悪いのかもしれませんが、あくまで「入庫情報」と「出庫情報」のテーブルは分かれ、その2テーブルを比較して、同じ型番のものを足したり引いたりする・・・ということが必要になってきます。
お手数おかけしますが、良い方法はないでしょうか??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- メルカリ メルカリShopsを作るとメルカリで販売は楽になりますか メルカリとまったく変わりませんか? 2 2022/10/11 19:22
- Excel(エクセル) Excelで在庫表(クエリ、ピボット) 2 2022/04/11 17:11
- マンガ・コミック 漫画を探しています。 ジュンク堂や紀伊国書店などネットで調べられる在庫はほとんど調べました。 それで 4 2023/01/06 23:04
- その他(Microsoft Office) Excelの関数(FILTER関数)について教えてください 2 2023/07/31 16:11
- 運輸業・郵便業 ●(令和なのですが…) 今時、 (倉庫会社の在庫の)倉庫管理システムが、 “紙”(商品依頼書•注文書 2 2022/08/07 18:09
- 冷蔵庫・炊飯器 冷蔵庫とそのためのコンセントの位置について 3 2022/04/04 14:28
- スーパー・コンビニ 一斉値上 スーパーの食料品 値上や単価の仕組みは? 4 2022/06/01 16:18
- その他(買い物・ショッピング) BOOKOFFの返品についての質問です。 BOOKOFFにて先日購入したPSPが改造されていました。 1 2022/04/10 20:39
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MySQL+PHP を使用した在庫管理
-
Accessで“0”ゼロ表示をする
-
アクセスでの在庫管理(在庫期...
-
アクセス・入出庫管理
-
ACCESSで在庫管理を作成するよ...
-
Accessで在庫管理する時の在庫...
-
差込印刷での全角表示について...
-
日付型のフィールドに空白を入...
-
アクセスのエラー「クエリには...
-
2つのテーブルに共通するレコ...
-
エクセルにおける「フィールド...
-
Accessの日付時刻型から日付、...
-
テキストボックスにクエリ結果...
-
Accessの桁区切りについ...
-
クロス集計クエリの結果をテー...
-
アクセスで追加した項目に全て...
-
ACCESS クエリの抽出条件に他の...
-
Accessのテーブルのフィールド...
-
Word差し込み印刷のハイフン(...
-
SQL文で パラメータが少なすぎ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで“0”ゼロ表示をする
-
Access エラー 指定されたフィ...
-
Accessで在庫管理する時の在庫...
-
アクセスのクエリで引き算をし...
-
ACCESSで在庫管理 備考欄の組...
-
在庫管理と賞味期限管理
-
MySQL+PHP を使用した在庫管理
-
Accessで在庫管理をしたいです。
-
Accessで、在庫表を作りたいの...
-
アクセスで在庫管理
-
アクセスが・・・
-
エクセルの関数でわからないこ...
-
エクセルVBAとアクセスでの在庫...
-
ACCESS2013 Switch関数で
-
Access2016 2つのテーブルを1つ...
-
ACCESSで在庫管理がした...
-
ACCESSで在庫の入出庫履歴を作...
-
ACCESSで在庫管理を作成するよ...
-
出庫と消費について
-
Accessのレポートで日々の在庫...
おすすめ情報