• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:請求書の単価)

請求書の単価について

このQ&Aのポイント
  • 請求書発行プログラムを作成中です。製品名と販売先の情報があり、単価TABLEを作成しましたが、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