質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

2回答

3997閲覧

accessで複数の注文を締日でまとめた請求書を作る方法とは?

takutakuro

総合スコア15

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

2クリップ

投稿2019/05/24 01:59

accessで請求書を作れずに困っています。

体系はオーソドックスな
T_受注
T_受注明細
T_顧客
T_商品
のテーブルがあります。

ここから請求書を作る際、一つの受注にたいして請求書を作ることはできましたが、そうではなく
締日(20締めや月末締め)で複数の注文をまとめて請求したいです。
請求書テーブル、請求書明細テーブルを作ってみましたが、リンクの仕方がわかりません。

できれば請求書テーブルに請求書Noをふって管理したいです。

体系作りからわかっていないので言葉足らずで初心者の質問ですみません。
どんなテーブルを作り、どんなクエリを作り、どんなリレーションを組めばいいか教えていただけると嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

T_顧客 に 締め日(数値型) フィールドを追加
20日締めなら 20
月末締めなら 0
と入力。

T_受注 T_受注明細 T_顧客 T_商品
を結合したクエリを作成して、必要なフィールドを表示する。

下記の演算フィールドを追加する。

受注年月: Format(DateAdd("m",IIf([締め日]>0,1,0),[受注日]-[締め日]),"yyyymm")

これで、例えば、

20日締めの場合、
2019/4/21~2019/5/20 のレコードの 受注年月 が 201905 となります。

月末締めの場合、
2019/5/1~2019/5/31 のレコードの 受注年月 が 201905 となります。

こクエリをレポートのレコードソースにして、
受注年月 でグループ化、
その下に、顧客コードでグループ化、
こうすれば、受注年月毎、顧客コード毎 で請求書を作成できます。

レポートを開く時に、Where条件 で、受注年月、顧客コード を指定すれば、顧客毎に請求書を出力できますし、
受注年月 のみ抽出条件に設定すれば、その年月の請求書を一気に出力するとこも可能です。

顧客毎に、翌月請求 とか 翌々月請求 という違いがあるなら、
T_顧客 に 請求月加算 というフィールドを追加すればいいでしょう。
翌月請求なら 1、翌々月請求なら 2 というように入力します。
クエリに下記の演算フィールドを作成します。

請求年月: Format(DateAdd("m",[請求月加算]+IIf([締め日]>0,1,0),[受注日]-[締め日]),"yyyymm")

投稿2019/05/24 07:23

編集2019/05/24 07:25
hatena19

総合スコア34367

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takutakuro

2019/05/27 00:12

詳細なご説明ありがとうございます。 『レポートを開く時に~』のところで、受注年月のみで抽出してその年月の請求書を一気に出力することができました。 その請求書ごとに請求書番号を与えることはできますか? たとえば、5月20締めで抽出した結果、A社B社C社の請求書が出てきたとします。 A社の請求書,受注情報に”1”という番号を、B社に”2”、C社に”3”と固有の番号を与えたいのですが、なにかいいアイデアはあるでしょうか?
hatena19

2019/05/27 04:48

年月+顧客コード を請求書番号とすれば、ユニークなものにできますので、それで十分ではないかと。 連番にしたいなら、レポートの顧客のグループヘッダーかフッターにテキストボックスを配置して、 コントロールソース =1 集計実行 グループ全体 と設定すれば、連番になります。 もし、請求書番号を発行してテーブルに格納したいということなら、 請求書テーブルが別途必要になり、それに月に一度、追加クエリで追加するか、 VBAでレコード追加することになります。 クエリとレポートだけですますか、後者の請求書テーブルを別途作成するか、 どちらがいいかは、運用実態によるのでどちらとも言えません。 前者のほうがシンプルだし手間がかからないので、とりあえず前者でやってみて、 請求書テーブルの必要性を感じたら、それを追加する方向で設計を進めたらどうでしょう。
takutakuro

2019/05/27 06:31

質問が散らかってしまい申し訳ありません。 確かに、連番の必要性は全くありませんでしたね。年月+顧客コードで十分でした。 最終的にしたい事は、発行した請求書のデータの管理をしたいです。 どんな請求書を発行したのか一覧で見られたらいいなと思っています。 管理したい情報は、請求書番号、請求日、顧客コード、合計請求金額、入金の有無、そして請求漏れした注文が有るのか無いのかも知りたいので、「この受注はこの請求書番号の請求書で請求した」というデータも管理したいです。 特にこの最後の情報をどう格納すればいいのか全く想像できません。 「請求書Xは受注Aと受注Bを合計して請求した」 「受注Aは請求書Xで請求した」 このような情報を管理したいですが、どんなテーブルにどんな方法で記録したらいいの検討もついていません。 うまく説明できているかわかりませんが、いいアイデアがありましたら教えていただけると嬉しいです。
hatena19

2019/05/27 08:36

請求に関するデータ(請求書発行日、請求方法、合計請求金額、・・・)も管理したいなら、請求書テーブルを作成する必要がありますね。 合計請求金額 は冗長なデータになるのでデータベース的には持たせないのですが、 値引きとかイレギュラーな処理も考えると請求書テーブルに持たせる設計もありだと思います。 自分が設計するなら、請求書テーブルはメインフォーム、請求明細は、受注、受注明細から作成してクエリをサブフォームにする設計にします。 請求年月、顧客コードをリンクフィールドにすれば、関連するデータがサブフォームに表示されます。 メインに「請求確定ボタン」を配置しておいて、そのボタンクリックでサブフォームの合計を「合計請求金額」に書き込みます。請求番号もこの時に発行するように設計にするといいかな。 業務実態や運用によって使いやすい設計は変わってくるのでこれを参考に使いやすいフォームやレポートを設計してください。
hatena19

2019/05/27 08:42 編集

> 「この受注はこの請求書番号の請求書で請求した」というデータも管理したいです。 に関しては、締め日、それをもとにした請求年月が決まってくるなら、 顧客コードと受注日(から決まる請求年月)で特定できますので、冗長なデータといえます。 ただ、管理のしやすさから持たせることもありでしょう。 その場合、上記の、請求確定ボタンの処理で同時に、受注テーブルの方に書き込むという設計になると思います。
guest

0

A.T_顧客に締め日の項目を作る
B.請求書出力指示の画面を作る
・出力する年月を指定するようにする。
・その年月と締め日の内容から、日付の範囲を計算したものを請求書の抽出条件にする。
・請求書テーブルは抽出の為の条件を持ち、上記条件内容を請求書テーブルへ出力
(この際にオートナンバーなりで請求書管理№を作成)
・請求書テーブルの条件を元に受注テーブルの該当データを明細に追加
・請求書テーブル、請求書明細テーブルを条件にした請求書(レポート)を出力

追記

コメントから

どんな請求書を発行したのか一覧で見られたらいいなと思っています。
そのために請求書ごとに番号をつけたいのですが…。
番号については連番でなくても何でもいいです。
管理したい情報は、請求書番号をキーにして、請求日、顧客コード、合計請求金額、入金の有無、

請求書のデータを作れば一覧を出力はできますので、その用途の為だけであれば必要はありません。
ですが、請求の明細との関係を作るためには必須です。

請求書テーブル(請求書管理№[オートナンバー],請求日,顧客コード,合計請求金額,入金の有無)

そして請求漏れした注文が有るのか無いのかも知りたいので、「この受注はこの請求書番号の請求書で請求した」というデータも管理したいです。

受注に請求管理№を持たせるのは非効率です。
請求書作成時に受注を参照して作るのですから、請求の明細に受注の情報を持たせた方が良いですね。

請求明細テーブル(請求書管理№[数値型:長整数型],受注№,受注明細№,請求額)

請求漏れは受注から、受注№の存在しない請求書明細を判断すれば、いいでしょう

投稿2019/05/24 02:10

編集2019/05/27 07:00
sazi

総合スコア25430

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takutakuro

2019/05/24 02:48

ご回答ありがとうございます。 お教えの通り、抽出して数件の受注内容がでてきました。 この抽出した数件の受注に、どうやって一つの請求書NOを与えることができますか?
sazi

2019/05/24 07:47 編集

請求書テーブル、請求書明細テーブルについて記述してませんでしたね。 現状考えられている請求書テーブル、請求書明細テーブルのレイアウトを質問に追記して貰えますか ※取りあえず回答に想定で追記しました。
takutakuro

2019/05/27 06:09

すみません。次から次に疑問が湧いて頭がこんがらがってしまっていて。 質問が散らかってしまいました。 最終的にしたい事は、発行した請求書のデータの管理をしたいです。 どんな請求書を発行したのか一覧で見られたらいいなと思っています。そのために請求書ごとに番号をつけたいのですが…。番号については連番でなくても何でもいいです。 管理したい情報は、請求書番号をキーにして、請求日、顧客コード、合計請求金額、入金の有無、そして請求漏れした注文が有るのか無いのかも知りたいので、「この受注はこの請求書番号の請求書で請求した」というデータも管理したいです。 請求書テーブルのレイアウトについては、どんなフィールドを作ればいいのかすら分からず、請求書明細テーブルが必要なのかすら分かっていません。 ド素人なので説明が十分にできているかわかりませんが、お答えいただけたら嬉しいです。
sazi

2019/05/27 06:55

回答に追記しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問