- 締切済み
Access2003で質問です。「フィールド”とキーが一致・・・」
Access2003で質問です。 受注管理の出来るものを、製作中です。 まず、製品データ(テーブル)として手入力部、ある一定の決まった物を入力する項目はコンボボックスを利用して入力しています。 これを、受注情報(クリエ)の方へコンボボックスを利用して入力する形をとっています。 その際、次のようなエラーが出ます。 「フィールド”とキーが一致しているレーコードをテーブル’T外注先リスト’で探すことができません。」と、でます。 製品データ入力の際、製品によって不必要な項目は空白にしてあるのですが、それが影響しているようです。 空白部があってもエラーの出ない方法はあるのでしょうか。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- Dxak
- ベストアンサー率34% (510/1465)
#1です > 結合方法はどこで見れば? 結合方法は、結合している線をみれば、判りますよ 線をクリックして、太くなった時に、ダブルクリックすれば、結合方法を選択可能です >> あとは、インデックスを割り当てておくこと・・・ > とは。? えっと、インデックスと言わずに、プライマリキー(主キー)と言った方が判る? 例の通り言えば「製品データ」の重複しないコードのようなフィールドを主キーに割り当てておくと言う話ね
- CHRONOS_0
- ベストアンサー率54% (457/838)
テーブル受注情報がT外注先リストを参照しているのであれば 受注情報入力前に外注先への入力を済ませておかなければならないというのは テーブルの整合性を維持するためのデータベースの制限です 質問のケースのようなときにはコンボボックスの[リスト外入力]イベントで T外注への入力フォームを開いてやるというようなインタフェースがよく使われます
リレーションシップの設定方法によるものでしょう。 結合の種類を変えてみてください。 「内部結合」「外部結合」によってエラーメッセージが変わります。 「内部結合」になっていると思いますので、「外部結合」に変えると空白があってもリレーションシップの設定ができると思います。 それでもエラーメッセージが出るようでしたら、元になるテーブルをもう一度チェックしてみてください。
これは「エラー」と言うよりも、目的のデータが存在しないだけです。 情報が少ないので、フォームやコンボボックスの作り方が悪いとしかいえません。 少なくともコンボボックスの空白部に「スペース」を使っているなら、これをNull値に変更してみましょう。 でも「製品によって不必要な項目は空白にしてある」という考え方を改めるのが、基本的なアプローチ方向です。
お礼
回答ありがとうございます。 とりあえず不必要な項目には、「なし」と選択肢は設けてはあるのですが、そもそも不必要な項目はわざわざ「なし」を選ばないで空白でもいいじゃないと思っていたのですが、駄目なのですね。
- Dxak
- ベストアンサー率34% (510/1465)
結合方法が1対1なのでは? 結合方法が1対多にすれば、大丈夫だと思いますけどね あとは、インデックスを割り当てておくこと・・・ で、判るかな^^;;;
補足
回答ありがとうございます。 >結合方法が1対多にすれば、大丈夫だと思いますけどね すみません。 結合方法はどこで見れば?とりあえずリレーションシップでリレーションシップの種類を見ると1対多になっています。ここでしょうか。? >あとは、インデックスを割り当てておくこと・・・ とは。? まだまだ初心者で、せっかく回答頂いたのに理解できませんですみません。
補足
回答ありがとうございます。 「内部結合」「外部結合」の確認方法がわかりません。 すみません。 情けないです。