• ベストアンサー

ACCESS リレーションシップの未入力

ACCESSで見積書を作成しているのですが、リレーションシップを行っている個所を未入力とするとレポートでエラーが表示されます。 下の写真では、指令テーブルの指令Noは必ず入力するようにしているのですがその他の、指令テーブルの納品先と内訳テーブルの指令No(内訳に同じ司令Noのレコード0という意味)は入力を省略してもいいようにしています。 しかし、指令テーブルの納品先と内訳テーブルの指令Noを未入力とするとレポートでエラーになります。 どうしてエラーになるのか理屈はわかるのですが解決方法がわかりませんでした。 未入力でもその他の個所は表示されるようにならないでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • shinkami
  • ベストアンサー率43% (179/411)
回答No.2

指令テーブルに 指令No.0 のダミーデータを登録する。 内訳テーブルの指令No.の規定値を0に設定する

kerneru
質問者

お礼

上記通りではありませんが、上記をヒントにやってみたところ問題なく表示するようになりました。 ありがとうございました。

その他の回答 (1)

noname#192382
noname#192382
回答No.1

二つの方法  ひとつはリレーションのエラーの発生の元になる結合だけを編集によりキャンセルしたらよいと思います。 もう一つはエラーの元になるテータを除いて仕事を進めるとか

kerneru
質問者

お礼

ご返答ありがとうございます。 >ひとつはリレーションのエラーの発生の元になる結合だけを編集によりキャンセルしたらよいと思います。 その場合、別の方法でテーブルを参照できるでしょうか? >もう一つはエラーの元になるテータを除いて仕事を進めるとか それもひとつの手ですね。 どうしても解決しそうにない場合はそうしてみます。

関連するQ&A

  • Access2003のリレーションシップについて

    Access初心者です。教えてください。 Access2003で、 テーブル"部" = 部ID、部名 テーブル"課" = 課ID、部ID、課名 テーブル"班" = 班ID、課ID、班名 テーブル"メンバー" = メンバーID、班ID、メンバー名 もちろん、"部ID"、"課ID"、"班ID"、"メンバーID"は全く重複していません。 上記の4つのテーブルがあり、 テーブル"総合"には、リレーションを作って、"部"、"課"、"班"、"メンバー"をプルダウンで入力したいと思います。 まず、"部"を選択して、 次に"課"を入力するときに、先に入力した"部"に所属する"課"のみをプルダウンで表示させ、 次に"班"を入力するときに、先に入力した"課"に所属する"班"のみをプルダウンで表示させ、 次に"メンバー"を入力するときに、先に入力した"班"に所属する"メンバー"のみをプルダウンで表示させて、入力したいのですが、上手く行きません。 "部"をプルダウンで入力して、次に"課"を入力する時に全ての"課"が表示されてしまいます。(フィルターが掛かっていないのです) リレーションシップで出来ると思うのですが、どのようにすれば良いのでしょうか??

  • アクセスのリレーションシップに関して

    アクセスでDBを構築して業務で使用しているのですが、容量がかなり大きくなってきたのでデータと、フォーム等による入力・検索を別DBで実施したいと思っています。そこで、元DBをコピーしてコピー先のテーブルを全て元DBからのリンクにしようとしたのですが、リンクを貼った後にテーブル名を置き換えしようとするとリレーションシップを削除しろというメッセージがでてしまいます。下手くそなシステムで、後でリレーションシップを貼りまくっているので、いちいちリレーションシップ削除・再構築をしようとすると膨大な作業になってしまいます。どなかか、リレーションシップを削除せずにテーブルを置き換える方法をご存知ないでしょうか。

  • Access2000のリレーションシップ?について

    Accessの初心者です。 取引先に出す文書に支店名と当方の会計年度を印刷します。 使い方としては、最初に会計年度と支店名を登録します。次に、文書発送先の登録をします。 そして、レポートを出力したいと思ってます。 今できているものは、支店名と会計年度は、「既定値」にしてます。 これを、他の支店や会計年度が変わっても使えるように、したいのですが、どうしたらいいでしょうか。 たぶん、支店名と会計年度を登録するテーブルを作って、リレーションシップというのを使うのだろうと思いますが、うまくいきませんでした。 支店の数が多いのでメインの入力フォームの中でコンボボックスやリストボックスは使いにくいので避けたいところです。 宜しくお願いします。

  • リレーションシップ

    テーブルAとテーブルBでリレーションシップを組んでいて 紐づいてる値をどちらとも同じ変更したいのですが、 テーブルAの値を変更しようとすると、 テーブル’テーブルB’にリレーションシップが設定されたレコードが必要なので、 レコードの追加や変更を行うことはできません。 と表示され、 だったら先に、テーブルBの値を変更しようとすると、 テーブル’テーブルA’にリレーションシップが設定されたレコードが必要なので、 レコードの追加や変更を行うことはできません。 となってしまいます。 どちらも同じ値に変更したいのですが、どうすればよろしいでしょうか? テーブルAとテーブルBは一対多で参照整合性にチェックがついて紐づいています。

  • アクセス2003でリレーションシップの方法。

    いつもお世話になります。アクセス2003で納品管理を作成しようと思いますが、物品で不使用になったものは不使用にチェックし、これからの注文一覧に表示されないようにしています。(これは使用中の物品クエリを作成。)しかし、これまでの納入済みの一覧からも表示されないようになるので困っています。過去に入力されたものは入力時の情報のままでこれから入力されたものから変更できるようにしたいと考えています。たとえば旧姓で入力してあったものを姓を変更した時点から新しい姓の入力で過去の入力の旧姓はそのままにするという感じです。これはリレーションシップの方法でどうにかならないでしょうか?どなたかよろしくお願いいたします。

  • Accessのリレーションシップウインドウに奇妙な現象が・・助けてください(TT)

    「依頼2テーブル」と「担当者テーブル」という2つのテーブルを作っています。「依頼テーブル2」の名前に2があるのはあまり意味はありません。 「担当者テーブル」の「担当者No.」フィールドを主キーにし「依頼テーブル2」にも「担当者No.」を作成しリレーションを貼ろうとしているのですが、奇妙なことになってまして・・・・ 現象1 「ツール」→「リレーションシップ」でリレーションシップウインドウを開くとテーブル名が表示されますが、「担当者テーブル」と「依頼テーブル2_1」と表示される。 現象2 現象1をなんとなく気持ち悪がりながらも「担当者No.」を結合フィールドとしてリレーションを貼り、参照整合性も設定するとエラーもなく設定でき「担当者テーブル」が親、「依頼テーブル2_1」が子であることを示す線がちゃんと表示される。 現象3 現象2もかなり気持ち悪いと思いながらも、「上書き保存」をするが、再度リレーショナルシップウインドウを表示するとリレーションシップが解除されている。(結合を示す線が消えている) 現象4 もう、オカルトな気分満点な状態のままリレーションシップウインドウで右クリックし「全てのリレーションシップを表示」を選択すると「担当者テーブル1」~「担当者テーブル10」と「依頼テーブル2」が表示され、「担当者テーブル」、「担当者テーブル1」~「担当者テーブル10」の11個のテーブルと「依頼テーブル2」が「担当者NO.」を結合フィールドにして全てリレーションシップが貼られている 以上のような状態になっています。作成したテーブルは2つだけなのにこんなことが起こるんでしょうか? また、自宅PCと会社のPCで同じファイルを操作していますが、現象は変りません・・・・ ご存知の方・・・助けてください~!!!

  • アクセスVBA テキストボックス入力値からの参照

    マイクロソフトアクセス初心者です。 現在、アクセスでデータベースを作成しています。 2つのフォーム(フォーム(1)、フォーム(2))、2つのテーブル(入力情報、マスタ)、2つのテーブルをもとにした1つのレポートを作成しています。 『フォーム(1)』のテキストボックスAに入力された値を、Dlookup関数で『フォーム(2)』のテキストボックスBに数値を参照しています。 『フォーム(2)』のテキストボックスに表示された値を、『フォーム(2)』に設置されたコマンドボタンをクリックすると、VBAで『テーブル入力情報』のフィールドAに入力されるようにしています。フィールドAについてのマスタとなるテーブルが『テーブルマスタ』です。 リレーションシップを設定せず、ただ単に値を入力することは出来るのですが、レポートを作成するにあたって、『テーブル入力情報』と『テーブルマスタ』のフィールドAに1(テーブルマスタ)対多(テーブル入力情報)のリレーションシップを設定したいと思っています。 リレーションシップを設定し、テキストボックスBに表示された数値を『テーブル入力情報』に入力する際、『テーブルマスタ』から該当するデータを選択して『テーブル入力情報』に入力されるようにしたいと思うのですが、現状では、リレーションシップを設定すると、入力値が真っ白になってしまい、レポートにも入力したデータが反映されません。 ちなみに、入力する際はフィールドA=Me.テキストボックスBのようにしています。 何か良い解決策がありましたら、是非教えていただけませんでしょうか? 分かり難い文章かと思いますが、どうぞ宜しくお願い申し上げます。

  • Accessリレーションシップについて

    お世話になります。 Access2010 普段はクエリにて、いくつかのテーブルやクエリを紐づけているのですが リレーションシップの設定は今までやったことがありません。 ネットで調べて、 ・「参照整合性」にチェックを入れることにより、1対多の多側で1側に存在  しないIDで登録しようとするとエラーになる。   →間違ったデータが入力されるのを防ぐ。 ・多側でリレーションシップが設定されているフィールドに値を入力しない  ことは可能。但し、当該フィールドの「値要求」プロパティを"はい"に  した場合は、入力しないとエラーになる。 ・「フィールドの連鎖更新」にチェックを入れると、1側で変更したものが  多側でも自動的に変更される。 ・「レコードの連鎖削除」にチェックを入れると、1側で削除した場合、  多側で該当するデータをもつレコードが自動的に削除される。 上記については実際に試してみて動きを確認しました。 ※上記の認識違いや、もっと大事なことがあればご指摘、ご教示頂けると  幸いです。 今までは、こっちのテーブルで削除したらこっちのテーブルでも削除 みたいなことをやってたので、便利だとは思うのですが。。 以下のテーブルでリレーションシップの設定を行ったとします。 売上テーブル  ID 商品 担当者コード  1 AAAAA  3  2 BBBBB  1  3 AAAAA  1  4 CCCCC  2  5 CCCCC  3 担当者テーブル 担当者コード 担当者名  1     担当者A  2     担当者B  3     担当者C 売上テーブルの担当者コードと、担当者テーブルの 担当者コードでリレーションの設定を行い、「参照整合性」及び 「レコードの連鎖削除」にチェックを入れたとします。 例えばフォーム上にリストボックスを設置し ID 商品 担当者名 を表示し、リストボックス上で選択されたレコードを、削除ボタンを 押したら、そのレコードが削除されるプログラムを作成します。 ※選択されたレコードのIDを取得し削除クエリで削除。 リストボックスでID:5のレコードを選択し、削除ボタンを押した場合 売上テーブルのID:5のレコードを削除しても、担当者テーブルから 担当者コード:3のレコードは削除されない・・という認識でよろしい でしょうか。 ※要するに、1対多の多側で削除されても1側には影響無し。 同様にリストボックスでID:5のレコードを選択し、削除ボタンを押したときに 担当者コード:3を取得し、まずは担当者テーブルで担当者コード:3の レコードを削除すると、併せて売上テーブルのID:1及びID:5が削除 される。 要するに、上記のケースで「レコードの連鎖削除」の設定を行うと 本来削除すべきID:5以外のレコード(ID:1)まで削除されてしまう ことになる?? ※そもそも例がちょっと悪かったかもしれません。。 何が言いたいかというと、「フィールドの連鎖更新」「レコードの 連鎖削除」は、よーく考えて設定しないと意図しないところまで 更新されたり削除されてしまうのかなと。。なので、設定することに よって、プログラムの作りも変わってきてしまうことになるので しょうか。 理解不足で質問自体もモヤモヤしたものになってしまいましたが、 ご教示のほど、宜しくお願い致します。

  • Access 複数テーブルのリレーションシップ

    Access2013  4種類の名簿をそれぞれのテーブル(4種類)で管理してありますが、 同じ方(氏名)が4種類の名簿全部には無く、2つや3つの名簿にばらばらにあります。  この4つのテーブルを同時に表示し入力できる分割フォームをつくりたいのですが、 この際の、4つテーブルの氏名をリレーションシップする結合プロパティの設定方法を教えて下さい。 あるいは、クエリのそれぞれのテーブルのフィールド(氏名)の抽出条件になんと書き入れたらよいか。教えて下さい。 宜しくお願いします

  • ACCESS2003のテーブル入力について

    いつもこちらでお世話になっております。よろしくお願いいたします。 マイクロソフトアクセス2003にて、No.と項目名という2つのフィールドから成り立つテーブルがあります。 そのテーブルにはあらかじめデータがはいっています。 新規にそのテーブルに追加する項目が出来たとき、新規入力用のフォームを作成しました。 その時のNo.のフィールドなのですが、自動的にもともとあるテーブルの番号に無いものを規定値として表示させておくようにするには、どのようにしたらよいでしょうか? 例) 1、2、3、5があれば、4を 1、2、3、4があれば5を よろしくおねがいします。 もうひとつ質問なのですが、納品書を入力していくデーターを作成しているのですが、納品書のテーブルがあり、リレーションで項目や会社名などを関連テーブルとしています。 あらかじめ会社名や項目名のテーブルに入力されていない新規の会社の納品書を打ち込む場合、納品書テーブル入力フォームに、入力しただけで、項目名のテーブルや会社名のテーブルに追加されていく方法はありますでしょうか?

専門家に質問してみよう