No.8ベストアンサー
- 回答日時:
Q1、売上が確定するとは、入金された時ということでしょうか?
A1、それは、私ではなく会社に聞くべき事柄。
私は、一般論として発生主義としか言えません。
Q2、どこで、どうやって帳尻を合わせたらいいのでしょうか?
A2、それも、私ではなく会社に聞くべき事柄。
私は、帳尻を合わせる必要はさらさらないと思いますよ。
そのための、見積り金額からの自由の確保ですから・・・。
いろいろとご説明して頂き、大変ありがとうこざいます。
見積書の金額が請求金額と違う場合は有りうるということで、それで見積書の金額を修正するかしないかも、依頼元会社との相談次第となるようです。
見積書が変えられない場合には、自社持ちとなりうる。
見積書でも、請求書でも、マイナスの金額とその摘要欄をもうけて対処するのが良いのかと今考えていますが・・・
No.7
- 回答日時:
>「見積金額 <> 売上金額」となるような事例は?
ゼロであって欲しいが、希に色んな原因で起こり得る。ですから、システムとしては「「見積金額 =売上金額」という考え方は皆無。
そういうことです。
この回答への補足
fa007様
ご回答ありがとうございます。
それでは、
>「見積金額 <> 売上金額」となるような事例は?
ゼロであって欲しいが、希に色んな原因で起こり得る場合
見積が完了した後、売上が確定するとは、入金された時ということでしょうか。
そして、入金された時に、例えば、区分で、「値引き」「追加作業代金」などなど、調節するということなのでしょうか。その分は、見積金額で修正し直すのでしょうか?
どこで、どうやって帳尻を合わせたらいいのでしょうか。
よろしくお願いします。
No.5
- 回答日時:
質問2) また、マスターと他のテーブルがリンクしないのが原則とおっしゃるのは、全てのマスターで同じであるということですか。
a:言っている意味が違います。
例えば、<商品マスター.単価=売上伝票.単価>というような事をリンクでもって実現するのは厳禁ということです。それ以上でも、それ以下でもありませんよ。
理由1:「商品マスター.単価」の登録においてミスがないとは限らないから。
理由2:参照すれば事足りるから。
リレーショナルデータベースにおいてリンクをはるのは当たり前のこと。でも、なんで「見積金額=売上金額」という前提でリンクを張るのか?それが解せないということ。でも、それは、そこそこの事情。貼られてもOKかと思いますよ。
この回答への補足
お忙しい中、ご説明して頂きまして大変ありがとうございます。
>例えば、<商品マスター.単価=売上伝票.単価>というような事をリンクでもって実現するのは厳禁
商品マスターの単価は、見積もり時に、指標となる単価として項目をセットをして、その単価から、実際の単価を入力すような作りにしようかと考えています。
>「見積金額=売上金額」
見積金額=売上金額としてリンクはまだしていませんが、売上は、一工事に関しては、実際の精算処理で、算出した値になると思います。その算出値は、見積の親と子のテーブルより取得しますが、見積したあとで工事の追加料金などが発生する場合がありますので、そのような場合に対応できる項目を追加しなくてはと考えています。
>「見積金額=売上金額」
このようなケースになる事例は、どんなものがあるのでしょうか?もし、ご経験の中から何かありましたら、ご教授願います。
よろしくお願いします。
No.4
- 回答日時:
【見積台帳】
ID
名前
年月日
・・・
【見積明細】
ID
見積台帳_ID
区分
件名
見積金額
この場合、
メインフォーム=見積台帳
サブフォーム=見積明細
>受付テーブルに、見積明細の親の情報を項目として作成しようかと
そういう発想そのものに疑義有り。止めはしませんが・・・。
理由1:
見積=作成主義。
受付=発生主義。
見積は、自社の裁量で作成した時点でデータベースに登録。
受付は、顧客との契約が成立した時点でデータベースに登録。
理由2:
マスター:随意情報の入力する際の固定的な参照データ。
随意情報:マスターデータからは独立した流動的であるが確定データ。
つまり、マスターデータは参照すれどリンクせずが原則中の原則です。
この回答への補足
ご回答大変ありがとうございます。
>見積=作成主義。
>受付=発生主義。
ご指摘の点、とても参考になります。
>つまり、マスターデータは参照すれどリンクせずが原則中の原則です。
質問1) マスターデータのIDは、それを使用する他のテーブルで、IDとして項目を設けています。もし、マスターデータの主キー(a)と、Bテーブルの外部キー(a')がリンクしていないのなら、Bのフォームでは、そのIDを項目として設けていると、それに対応する名称などは、フォーム上ではどのように取得したら良いのでしょうか?
例)
Aマスター
・主キー a
・名称AA
Bテーブル
・主キー b
・外部キー a'
※ a と a'は、リンクしていない
その場合
Bフォーム
・主キーb
・外部キー a'
・テキストボックスで、マスターの名称AAを表示したい
質問2) また、マスターと他のテーブルがリンクしないのが原則とおっしゃるのは、全てのマスターで同じであるということですか。
質問3) マスターがテーブルとリンクしていない場合、マスター画面で選択したIDをどうやって呼出元のフォームで取得すればよいでしょうか?
以上、よろしくお願いします。
No.3
- 回答日時:
うーん!
A-Bの関係がよく分かりませんが・・・。
だとしても、全く問題はないと思いますよ。
※B=親、C=子でちゃんとフォームを生成できますよ!
この回答への補足
◆AテーブルとBテーブルの関係
A: 受付情報を受付ID 1個に対して入力します。
・受付ID
B: 受付情報のID 1個に対して、見積情報を作成する場合の親テーブルを作っています。
・見積ID(1:1)
・見積の合計金額
C:見積明細テーブル
・見積明細ID
・見積ID
◆親フォームの親IDと子フォームの親IDが連動しなかった理由
BフォームとCフオームでIDキーが連動しなかった理由は、もしかすると、リレーションシップの設定で、「参照整合性」→「フィールドの連鎖更新」のチェックボックスにチェックが入れられなかったのが原因かということに気づきました。
そもそもここで、何故、参照整合性が出来なかったかというのは、おそらく、AテーブルとBテーブルが1:1の関係で各IDキーのリレーションシップを設定しようとしていたのに、IDの列に入っていた値が、AとBで違っていたからでした。
Aテーブル→IDの列に、1-10が入っていた
Bテーブル→IDの列に、1しかなかった
これでは、1:1の参照整合性のリレーションシップは作れませんよね。
大変、すみませんでした。お手数をおかけしまして。私のミスです。
◆見積の親テーブルはどれにすればよいか
受付ID(A): 見積ID(B) = 1:1
見積親テーブルの見積ID: 子テーブルの見積ID = 1:多
このようにしなくても、受付テーブルに、見積明細の親の情報を項目として作成しようかと思いましたが、しかし、見積は見積の親テーブルとして情報を持つのが良いのかと思って、わざわざ、見積親テーブルというのを作りました。
このようなIDのリレーションの仕方(テーブルの分け方)は、普通しますでしょうか?それとも、違う仕方をしていますか?
よろしくお願いします。
No.2
- 回答日時:
【補足に対する答え】
1、オートナンバー型は一切使ったことがありません。
でも、書かれているような不具合については経験したことがありません。
そもそも、オートナンバー型なんて商用のソフトでは利用しないと思いますよ。
そして、自動採番ってのも商用のソフトでは当たり前のこと。
それで、不具合が出るようじゃ使えたもんじゃーありません。
ですから、何らかの二重のミス。
第一のミス・・・主キー設定ミス。
第二のミス・・・それに気づかないでリレーション設定が出来ないと思っているミス。
2、ちょっと意味が・・・。
>保存ボタンなどを押した時に、
>親フォームのIDを取得して、
>サブフォームの親IDにもセットする事をしなくてはいけないでしょうか?
疑問1、なぜ、保存ボタンを押す必要があるのか?
疑問2、なぜ、親フォームのIDを取得する必要があるのか?
疑問3、なぜ、サブフォームの親IDにセットする必要があるのか?
私の経験では、メイン・サブのフォームアプルケーションを完全に非連結で書くのは不可能。膨大なクラスライブラリを書けば、関数オーバーヘッドが発生するのは必至。ですから、完全な非連結ってのはありえない。「ちょっと意味が・・・」という理由です。
この回答への補足
ご回答ありがとうございます。
1について
私の説明が不明瞭ですみませんでした。
リレーションシップが作れないというのではなくて、リレーションシップが創れるけども、参照整合性のチェックボックスにチェックが入れられないという意味です。
テーブルの主キーと、それを外部キーとして参照する別のテーブルをリレーションシップでつなごうとスル場合、片方がオートナンバーでないと、参照整合性にはチェックが入れられないのでしょうか?
2.
>疑問1、なぜ、保存ボタンを押す必要があるのか?
>疑問2、なぜ、親フォームのIDを取得する必要があるのか?
>疑問3、なぜ、サブフォームの親IDにセットする必要があるのか?
疑問1:保存ボタンを押すことで、Formの編集中のデータを保存するコードを保存ボタンのクリックイベントで記述しています。
Form_BeforeUpdateでは、Cancel=Trueにしています。
この理由は、間違った入力したものを間違って保存してしまうのを防ぐためです。
疑問2、3:
親Fm: 親ID
子Fm: 子ID
親ID
この場合に、参照整合性が設定出来なかったからか、サブフォームを入れた画面で、サブフォームの親IDに自動で親フォームの親IDがセットされませんでした。これは何故でしょうか。私のリレーションシップの設定の仕方が良くないということでしょうか。
リレーションシップの貼り方は
Aテーブル
・aID
・受付情報
Bテーブル(親)
・bID
Cテーブル(子)
・cID
・bID
・名称
◆リレーション設定内容
・A(aID) - B(bID) : 1対1
・B(bID) - C(bID) : 1対多
よろしくお願いします。
No.1
- 回答日時:
Q1、オートナンバー型を主キーでないとリレーションが設定できません。
A1、それは、何らかのミスを犯している。あるいは、誤解している。
のだと思いますよ。
Q2、Subフォームでの自動採番処理はどのようにすれば良いでしょうか?
A2、少なくともレコードが登録される直前までに。
【自動採番処理は一つの専用関数を使いまわす】
例えば、テーブル[ID管理表]から新しいレコード管理番号を取得するNewID() など。
Me.ID = NewID("TableName", "FieldName")
そうすれば、この1行をしかるべき場所の書くだけですから・・・。
この回答への補足
ご回答ありがとうございます。
大変、失礼しました。私の説明の仕方が今ひとつよくありませんでした。
Q1.自前の採番処理 + 主キーは長整数型にしていると→リレーションをはろうとすると、参照整合性、フィールドの連鎖更新などが設定出来ないという意味でした。ここは、参照整合性をオフにしてリレーションをはることしか出来ないのでしょうか?
自前の場合、参照整合性をオフにして不具合とかはありますでしょうか?
Q2.A2-> ありがとうございます。
この部分、サブフォームの親IDと、親フォームの親IDは、保存ボタンなどを押した時に、親フォームのIDを取得して、サブフォームの親IDにもセットする事をしなくてはいけないでしょうか?
大変お手数をおかけして申し訳ありませんが、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- 妊活 体外受精 採卵前の夫の禁欲期間について 6月から体外受精の前準備でピルを服用し、 只今自己注射を打っ 2 2023/07/10 15:49
- Visual Basic(VBA) VBA リボンののリカバリーでオーバーフローエラーになります 2 2023/07/04 19:07
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- 面接・履歴書・職務経歴書 人事、面接担当者の方に聞きたいです 来期自分が一次の採用面接担当する話が出ているらしいのですが、正直 3 2023/04/21 00:04
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Access(アクセス) ACSESS初心者です マンション管理をACCESSで出来ないかとチャレンジしています。 リレーショ 3 2022/10/08 11:45
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- デスクトップパソコン 「自動修復でPCを修復できませんでした」と表示されPCが起動しないのですが対処法はありますか? 5 2022/05/13 09:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access サブフォームでの選択行...
-
ACCSESS2013VBA フォームのレコ...
-
Access2000 サブフォームのReco...
-
Access 複数フォームを...
-
アクセスで サブフォームの表...
-
サブフォームのデータを保存す...
-
ACCESSでfilterとorderbyについて
-
Accessでサブフォームの中の並...
-
(ACCESS)条件に応じて、テキ...
-
サブフォームでのダブルクリッ...
-
AccessのFormのみをスクリーン...
-
Access2000、これはいったい・...
-
Accessのサブフォーム内で連続...
-
初心者です。accessで請求書を...
-
Access 検索フォーム
-
Access レイアウト変更したサブ...
-
Accessで、サブフォームのある...
-
コンボボックスで選択実行後、...
-
複数項目でのサブフォームとの...
-
サブフォームが見えなくなる。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access 複数フォームを...
-
Access2000、これはいったい・...
-
ACCSESS2013VBA フォームのレコ...
-
Access2000 サブフォームのReco...
-
(ACCESS)条件に応じて、テキ...
-
access サブフォームにリストを...
-
サブフォームが見えなくなる。
-
Accessのサブフォームから値を...
-
初心者です。accessで請求書を...
-
2回目に画面のレコードセットの...
-
サブフォームでのダブルクリッ...
-
アクセスで サブフォームの表...
-
アクセスでサブフォームのレコ...
-
googleフォームでインストール...
-
サブフォームのデータを保存す...
-
AccessのDoCmd.ApplyFilterの使...
-
サブフォームでフィルタしたデ...
-
Accessで、サブフォームのある...
-
AccessのFormのみをスクリーン...
おすすめ情報