請求書の単価について

このQ&Aのポイント
  • 請求書発行プログラムを作成中です。製品名と販売先の情報があり、単価TABLEを作成しましたが、20,000行になるため工夫が必要です。
  • 納品書Tblと単価TABLEで選択クエリを作成している中、単価が登録されていない場合に警告を表示し、単価登録フォームを表示させる方法を教えてください。
  • 個々の販売先で全ての製品が出ないため、納品書の順に登録するように考慮しています。道筋をアドバイスいただければ幸いです。
回答を見る
  • ベストアンサー

請求書の単価

少しずつ、みなさんのアイデアをいただき、 請求書発行プログラムを作成中です 今度は、100件程度の製品名と販売先が200件位ですが  前回、アドバイスいただいた 単価TABLE(製品ID、販売先ID、単価)を作成しましたが このテーブル完成させるには100件×200件で20,000行になってしまいます 個々の販売先で全ての製品が出るわけではないので、  納品書で出てきた順に登録する様に考慮中です。 納品書Tblと単価TABLEで選択クエリを作っていますが 単価登録されていない時、警告を出し単価登録フォームが 表示され、そこで単価登録させるようにしたいのですが どのように考えていけば良いか道筋をアドバイスいただければ幸いです よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.5

>納品書Tblはエクセルファイルを外部データの取り込みでテーブルのリンク・・ 納品書TblはExcelのシートをリンクしてあり単価TABLEはAccessのテーブルという事でいいのでしょうか。 例えば補足などから見てAccessで請求書フォームを作り製品IDを入力し単価を単価TABLEから参照するときに(LookUpでもクエリでもいいですが)フォーム上の単価に参照された値がNullだった場合に下記の記述を製品IDの更新後処理のイベントか単価のフォーカス取得時イベントに記述すれば If IsNull(Me!単価) Then MsgBox "単価が登録されていません" DoCmd.OpenForm "単価登録フォーム" End If 製品IDを入力し参照した単価フィールドがNullの場合にMsgBoxを表示し単価登録フォームを開きます。 このような感じになるのですが。 単価登録フォームで入力し新しい単価を保存して請求書のフォームをRequeryして新しく追加した単価のレコードも反映できるようにすると言うことです。

hiroshisan
質問者

お礼

ありがとうございました。  解決いたしました。 事務所のpcからの投稿でしたので 返事がおそくなりました。

その他の回答 (5)

  • acenoh
  • ベストアンサー率0% (0/1)
回答No.6

返信ありがとうございます。 >納品書TblはExcelのシートをリンクしてあり単価TABLEはAccessのテーブルという事でいいのでしょうか。 はいその通りです、その2つのテーブルを選択クエリで結合させています。 ですので、選択クエリを開いても未登録部分が空欄になるだけなので、 (フォーカスを取得出来ないので) >フォーム上の単価に参照された値がNullだった場合に 下記の記述を製品IDの更新後処理のイベントか 単価のフォーカス取得時イベントに記述すれば,,, の意味が勉強不足で理解できていません、そこで このクエリを元に請求書フォームを作りCommandButton単価検索を配置し ボタンをクリックした時、単価空欄(Null値)を検索させ空欄を見つけたら 単価登録フォームが開く様にしたいと考えました。 ”CommandButton単価検索”クリック時のコードは Private Sub コマンド単価検索_Click() If IsNull(Me!単価) Then  MsgBox "単価が登録されていません"  DoCmd.OpenForm "単価登録フォーム" End If End Sub でも、同じでしょうか?

  • acenoh
  • ベストアンサー率0% (0/1)
回答No.4

同じ内容の事をアップロードしてしまい失礼いたしました。 タイムスタンプを見ていただければ解ると思いますが No2を書き込み後、自分の内容を確認したのですが、 載っていません、おかしいな、受け付けて貰えなかったのかな? と思いながら同じ内容を書き込んでしまいました。  違うスレッドを立てるべきですがこのように 1時間以上もロードされない事って、どこに原因が あるのでしょうか? お分かりの方よろしくお願いいたします。 バージョンはIE6のSP2です、

  • acenoh
  • ベストアンサー率0% (0/1)
回答No.3

早速アドバイスいただき有難うございます。  会社のpcから質問しました質問者のhirosisanです。 自宅のpcから〔回答に対する補足〕でレスポンス してますので惑われるかもしれませんが よろしくアドバイスお願いいたします。  説明足らずでしたが、実は 納品書発行プログラムをエクセルで作成しています。 納品書Tblはエクセルファイルを外部データの取り込みでテーブルのリンクにしていますので、 アイコンはエクセルのロゴになっています。 選択クエリで(クエリ名:請求クエリ) 納品書Tbl:日付、伝票番号、請求先、製品名ID、製品名、数量 の項目 単価TABLE:製品ID、販売先ID、単価 の項目でクエリは 納品書Tblから製品ID、販売先IDへそれぞれ結合させています。  そこでアドバイスいただきました。 >納品書レコードを入力する際に,,,ですが 請求クエリをフォームにした時エクセルでしたら 単価空欄(未登録箇所)になったセルを右クリックで Private Sub Worksheet_BeforeRightClick (ByVal Target As Range, Cancel As Boolean) UserForm単価登録.Show ' End Sub 単価を登録出来るのですが、アクセスではどのようにするのでしょうか?

  • acenoh
  • ベストアンサー率0% (0/1)
回答No.2

早速のアドバイス有難うございます。 「質問者なのですが事務所のpcから質問し 自宅のpcで回答に対する補足を書きかました ので回答者欄からの質問になり、 一寸戸惑われるかもしれませんがよろしく ご指導ください」  説明不足でしたが、納品書発行を エクセルで入力し納品書tbl.xlsを作っています。 (出荷時の時刻を伝票に書込む必要があり、 取っ付き易いエクセルで納品書発行プログラムを作成 その後、データの加工にはアクセスの方が 向いているようなのでアクセスで請求書作成中です)  アクセスの外部データの取り込みから テーブルのリンクで納品書tblを アクセスで作らせています (エクセルアイコンの納品書tblです) 納品書Tbl:日付、伝票番号、請求先、製品名ID、製品名、数量の項目   時刻は請求書には不必要なので省略しています。 そこでアドバイスいただいた、 >納品書レコードを入力する際 の処が選択クエリで納品書Tblから単価Tblの製品ID、販売先IDに向かう矢印で結合させています。  このような時に >単価がNullであればメッセージを出し、、、 はどのようにすれば良いのでしょう  請求クエリをフォームで請求書Formの単価の空欄部を右クリックし入力 若しこれをエクセルでやらせるなら Private Sub Worksheet_BeforeRightClick (ByVal Target As Range, Cancel As Boolean)  UserForm単価登録.Show 'フォームで空欄単価を埋めるように End Sub という事で出来るのですが、アクセスは勉強途上なので分かりません よろしくお願いいたします。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

単純に 納品書Tblのフォームで納品書レコードを入力する際に販売先IDと入力された製品IDで単価TABLEからレコードを参照する際に単価がNullであればメッセージを出し単価登録フォームを表示するようにすれば良いと思いますが。 単価のコントロールのイベントに If IsNull(Me!単価) Then MsgBox "単価が登録されていません" DoCmd.OpenForm "単価登録フォーム" End If とでもしてメッセージ後に単価登録フォームを表示させ単価を入力し単価登録フォームを閉じる際に単価TABLEに単価を保存後に納品書フォームをRequeryして閉じ保存した単価TABLEのレコードを反映させる。 こんな感じで良いと思います。

関連するQ&A

  • アクセスで単価を判断させるには

     お尋ねいたします。 手書き納品書を整理しアクセスで請求書を 作成中なのですが、単価のテーブル、クエリを どのように、考えて作成すればよいかアドバイスを お願いします。  商品は100種類位有り、定価(積算単価)は 決めていますが、販売先によりバラバラです 販売先に掛け率を決めて販売単価を決めるのではなく その時々で決めています。  エクセルのように行頭に商品名、 列頭に販売先名を入れてVLOOKUP関数で 販売先別単価を決めるような方法有りますか?  アクセスは勉強中でエクセルのワークシートに 当たるのはクロス集計のようなのですが どの様に使用したらよいのか要領を得ません よろしくお願いいたします。

  • ACCESS 商品毎の最新の単価を設定するには?

    ACCESS 商品毎の最新の単価を設定するには? 既に運用しているデータベースで不具合があり、以下のようなクエリを作りたいと考えていますが、データベースを作成してからかなり時間も経ってしまっており、自力で形にすることができません。 お知恵をお借りしたいと思いますので、よろしくお願い致します。 1.テーブル構成 [T_商品マスタ]--商品IDでリレーション設定--[T_単価マスタ] T_商品マスタのフィールド 商品ID(キー/数値型) 商品名1(テキスト型) 商品名2(テキスト型) 商品分類ID(数値型) 定価(通貨型) 取扱中止(Yes/No型) 販売単位(テキスト型) 備考(メモ型) T_単価マスタのフィールド 価格履歴ID(キー/オートナンバー) 商品ID(数値型) 仕入単価(通貨型) 仕入先ID(数値型) 販売単価(通貨型) 変更日(日付/時刻型)…Now()にて変更を入力した日付及び時刻を記録しています。 [Q_商品最終単価]…現在運用していますが、仕入単価及び販売価格が[T_単価マスタ]の最新のものにならない不具合が生じています(クエリ内の集計で"最後"を使用していますが最後=最新ではないとか、、、) クエリ内で設定している項目 商品ID 商品名1(単価を登録する度に変更することは禁止) 商品名2(単価を登録する度に変更することは禁止) 仕入単価(変更の度に[T_単価マスタ]の仕入単価欄に単価を入力して更新) 販売価格(仕入価格を入力するとフォーム上で自動計算) 変更日(仕入価格を入力した日時) クエリ時のイメージ 商品ID  商品名1  商品名2  仕入単価  販売単価  変更日 0001   うどん   稲庭    100     200     2010/01/01 10:10:16 0002   うどん   讃岐    150     300     2010/01/25 11:12:50 0003   そば    十割    200     400     2009/12/15 15:30:10 . . . 伝票入力時にこのクエリを用いて商品IDを入力することで、最新の単価を呼び出すようにしていたつもりでしたが、集計クエリの"最後"に信頼性が無いことがあるそうで、必ずしも最新の単価になっていないと発覚し冷や汗をかいております。 Q_商品最終単価の項目はそのままで、商品ID毎に最新の変更日に基づく最新の単価をクエリできる方法をご教授願います。

  • チェックボックスの値で単価を変更したい

    商品管理DBを作成しています。 一つの商品に対して卸値が複数あり、、 チェックボックスを利用して受注入力の都度、該当する単価を割り当てたいと 思っています。 最初は卸値は1つだったのですが、卸値が増えてしまいました。 どちらかを選択できるよう、元あった明細フォームに追加する形で作成できないかと 思っています。 現在は商品マスタに卸値1、卸値2を設定しています。 1.テーブル「T納品明細」にYes/No型のフィールド(「卸値2」)を設けました。 2.クエリ「Q納品明細」にチェックボックス「卸値2」を作り、 を基にしたフォーム「F納品」(サブフォーム「F納品明細」)にも表示しました。 元はQ納品明細に、納品金額 :[卸値1]*[数量]という演算フィールドを設けていたのですが、 今後はチェックボックスにチェックの入っている場合は計算式を[卸値2]*[数量]にできないかと思っています。 今しようとしていることが間違っているのかどうかもわかりません。。。(汗) もっと正しい方法があれば、どうぞ教えて下さい。 もう1件これに関して、レポート出力の際は実際に使用した1種類の単価のみ表示させたい のですが、どのようにすればよいでしょうか。 テーブル、クエリ、フォーム上では卸値1、卸値2共に表示されています。 下手な説明で申し訳ありません。 よろしくお願いします。

  • クエリをマクロでやるには?

    お伺いいたします アクセスで テーブル:納品データ があり フィールドは:ID、日時、販売先、品名、数量 です その中の販売先の重複をさけた 選択クエリ:顧客名 を作りました。 次に (1)顧客名をデザインビューにし「ツール→テーブル作成(k)」で名前を"販売先"でテーブルを作成 (2)顧客名を元の選択クエリにクエリの種類アイコンで選択(S)で 選択クエリに戻しておく で重複のないテーブル:販売先を作れますが 上の(1)と(2)をマクロにしたいのですがどの様にすれば良いのでしょうか エクセルでしたらツール→マクロ→新しいマクロの記録で作れますが アクセスではどうやるのでしょうか  OSはWinXPでOffice2000です

  • [ACCESS]フォームで、レコードを抽出して編集するには?

    ACCESS2003、初心者です。 納品テーブルを作成して、それをフォームで入力しています。 フィールドは、 ID,製品名,セイヒンメイ,メーカー,仕入先,単価,在庫数,残高 です。 納品テーブルのレコードを元にフォームを作成したいのですが悩んでいます。 (1).納品テーブルから、表形式で商品レコードを並べて表示させる (2).セイヒンメイでグループ化。 (3).セイヒンメイを昇順で並び替え (4).在庫数、残高を編集 (1)~(4)の作業を行いたいのですが、いろいろ試した結果、うまくできません。 テーブル作成クエリ→実行→在庫フォーム開く(この場合のソース元はクエリ) のパターンで可能だったのですが、フォームを開いた時にグループ化や並び替えを行う方がスマートなので実現したいのです。 もしくは、フォーム上でコマンドボタンを押せばグループ化や並び替えができればそれでも構いません。 いろいろ調べて、SQL(GROUP BYやHAVING)を使わないと駄目なようですが、どのようなコードを書いたらよいのでしょうか?

  • Access2000でのINSERT文の作成マクロについて

    MSAccess2000での環境下、2つのテーブルを参照した結果を別テーブルにINSERTしたいと考えております。 <会員TBL> 600件 ID、氏名、会員区分ID <会費TBL> 5件 会費区分ID、年会費 <請求TBL>・・・INSERTしたいテーブル 会員TBL.氏名、会費TBL.会費区分ID、会費TBL.年会費、請求日(INSERT文実行日) 以上のような会員テーブルと年会費テーブルを結合した請求データを請求テーブルに挿入したいと考えております。 Access2000でこのようなデータの作成が可能であれば、全会員分の請求レコードを作成するSQL文の作成から実行までをマクロで実行したいと考えています。 Access2000での開発経験が皆無の為、勝手がわかりません。 どなたかアドバイスをいただければ幸いです。

  • Access 単価変更

    Accessで仕入管理を作成しています。 部品テーブルに登録してある単価を変更しても、過去のデーターは単価変更しないように設定にしたいのですが… 現在は、部品テーブルの部品番号と仕入テーブルの部品番号をリレーションシップの設定をしているので、過去のデーターも最新単価に変更されます。 どのような構成にしたら良いのか見当もつかなく困っています。 Access初心者なので、分かりやすく教えて頂けると助かります。 よろしくお願い致します。

  • アクセス:請求書のシステムで数量×単価の計算をクエリで・・・

    お世話になります。アクセス初心者です。よろしくお願いいたします。 ある、施設利用者の(簡易)請求書システムを作っています。請求書には、食事やそのたいろいろな項目が複雑にあり、人数も100名を超えるため、アクセスで作成しています。VBAがわからないので、クエリとクエリ内関数を使ってのものです。 ◆その施設の利用者の食事請求計算について、テーブルにて  (1)【食事単価マスタ】(テーブル)    朝  昼  夕  特別行事食    500 700 800   1500  (2)【喫食数】(テーブル)   氏名 朝 昼 夕 特別行事食    A 30 20 29 1 B 0 30 30 0 C 5 30 30 0 というような2つのテーブルをもとに『クエリで請求額計算』を行いたいのですが、混乱気味で作れません。どうか方法を教えてください。          

  • ACCESSで残高のある請求書作成で困っています

    アクセスを使って納品伝票を作っているのですが、 納品書は作れたのですが、請求書を作る所で困ってしまいました。 請求書には得意先の月ごとの請求額と、前月の残高を印刷したいのですが、集計した請求額と残高をうまくレポートに表示できません。 現在、納品テーブルから追加クエリを用いて 取引テーブルに一月ごとの請求額を集計して追加しています。 納品テーブル(得意先 日付 売上)  追加クエリにて… 取引テーブル(得意先 日付 請求額 入金(残高))    (日付はその金額を算出、あるいは入力した日です) 入金もこのテーブルに追加しているのですが、残高で困ってしまいました。 残高はSum(請求額)-Sum(入金額)で求められると思うのですが、このデータを格納する場所がわかりません。 できれば取引先テーブルの入金フィールドの隣にでも追加できれば楽なのですが…(できればそのままレポート作れますよね)。 今は残高テーブルを新たに作り、そこに追加クエリで追加しています。 残高テーブル(得意先 日付 残高) 現在、得意先の情報を入力する得意先フォームのサブフォームに取引テーブルの内容を表示するようにしてあります。 入金もこのフォームから行っているのですが、このフォームから表示している得意先のIDと日付を元に、取引テーブルの請求額と残高テーブルの残高を参照してレポートは作成できますか? フォーム上のコマンドボタンから印刷しようと思い、 マクロの条件式をいろいろ変えたりしてみましたがうまくいきません。 どうもレポートの理解がまだ足りない様です。 かなり見当違いの事をしているのかもしれませんが、 どうか宜しくお願い致します。           

  • 縦結合と変数設定のクエリ

    ユニオン結合で困っています。 以下のような3つのテーブルがあり、正規化したいため以下のようなユニオン結合と変数を設定したクエリを作成したいです。 加工前のテーブルはtbl1,tbl2,tbl3とあり各フィールド名は以下のとおりです。 tbl1: ID,右眼術前検査日,左眼術前検査日 tbl2: ID,右眼手術検査日,左眼手術検査日 tbl3: ID,右眼術後検査日,左眼術後検査日 これらのテーブルを以下のようにするクエリはどのようにしたらよいでしょうか? 求めるクエリqry qry: ID, 眼, 検査時期, 検査日    101,右, 術前, 2007/01/01 101,右, 手術, 2007/01/05 101,右, 術後, 2007/01/06 101,左, 術前, 2007/01/02 101,左, 手術, 2007/01/05 .... テーブルによって変数を設定するところの組み合わせがよく分からなくて困っています。大変恐縮ですが、ご教示のほどよろしくお願いします。

専門家に質問してみよう