• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access 一対一リレーションの編集)

Accessの一対一リレーション編集方法

このQ&Aのポイント
  • Accessの一対一リレーション編集方法を教えてください
  • Accessと他のソフトの連携について知恵を貸してください
  • Accessの受注テーブルと新規テーブルのリレーション方法を教えてください

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

  • ベストアンサー
  • tamu1129
  • ベストアンサー率58% (1294/2222)
回答No.3

>リレーションをせず受注テーブルにやたらめったらフィールドを詰め込んである状態なのです 別にそれでも良いんですよ この詰め込んであるテーブルのデータから必要な物だけをクエリを使って抽出して取り出せるようになればデータベースは活用している事になります 無駄に同じ複数のデータ格納するような作りのデータベースになっていても、容量の無駄にはなりますが、データベースとしては機能します そこから始めれば良いんですよ データベースは後からフィールド加える事も、削除する事も可能ですし 重要なのは自分が取り出したいデータはどういった物かなのかがはっきりしているかどうかなのです 今回の場合、coco--chanel さんは受注テーブルと、新規テーブルの関係は1対1になると言っています この場合には、1つのテーブルにしてしまえば良いだけの話なんです 逆に2つに分ける意味が無い 今回のケースならば 受注テーブル 主キーID:オートナンバー 受注日:日付型 納期:日付型 図番:テキスト型 数量:数値 単価:数値 取引先コード:テキスト型 担当者コート:テキスト型 区分コード:テキスト型 実出荷日:日付型 初回エクスポート:Yes/No 型 キャンセル処理:Yes/No 型 変更有り:Yes/No 型 納入済:Yes/No 型 というテーブルにすれば良いだけなんです このテーブルにデータ入力する時に、取引先○○はコード何番だっけ?てな事が起こるので、別途取引先のデータが入ったテーブルを作成してリレーションを張って、フォームで入力する時には取引先名をあいまい検索から引き出して、取引先コードを入力したり、取引先コードを入力すると配置したテキストBOXに該当する取引先名が自動的に表示されるようして、入力した取引先コードが間違っていないと確認するというような使い方をするのです >新規テーブルのIDは数値型(手入力)にして受注テーブルと同じになるよう(メイン/サブの関係)にすれば大丈夫ですか❓ 1対多の関係になるならメイン/サブの関係にしても良いでしょうけどね 1対1の関係なら、メイン/サブの関係にする必要はまったくありません 繰り返しますが、1つのテーブルにフィールドその分だけ持てば良いだけです まずは最終的に出力するデータが何が必要なのかから確認した方が良いです テーブルは実データを格納する物 フォームがテーブルにデータを入力する時に利用するもの(このフォームからデータ入力する時にリレーション張っていると便利になります) ごちゃごちゃに入っているテーブルデータから、必要なデータを取り出して活用するのがクエリです テーブルに何から何まで詰め込んでしまっても、クエリが正しく使えればcoco--chanel さんがやろうとしている事は出来るのです

coco--chanel
質問者

お礼

tamu1129さん 回答有難うございます。おかげでイメージがだんだん濃くなってきました。 まずは、受注テーブルの中からどんなデータが必要か どんなタイミングでエクスポートをするのかなど紙に書き出して整理してみます。 また、つまずいたら投稿させて頂きます。 頑張ります。有難うございました。

その他の回答 (2)

  • tamu1129
  • ベストアンサー率58% (1294/2222)
回答No.2

根本的にテーブルの作成方法が間違っています 言っている事は 受注テーブルのフィールドを 主キーID:オートナンバー 受注日:日付型 納期:日付型 図番:テキスト型 数量:数値 単価:数値 取引先コード:テキスト型 担当者コート:テキスト型 区分コード:テキスト型 実出荷日:日付型 というテーブルにするだけで事足りますが? リレーションシップ張るなら、取引先コードと担当者コード 区分コードの数が多いならこれも別テーブルでデータを持って、リレーションさせて使うと良いでしょう coco--chanel さんの意図している事がいまいち不明確なのですが、受注テーブルのIDと新規テーブルのIDを関係付けさせたいなら、新規テーブルのIDはオートナンバーで自動取得ではダメです 受注テーブルでデータ入力時にオートナンバーで1が採番された この番号に関連する新規テーブルのデータ入力したいなら、新規テーブルのIDが1になるようにしなければ関連付けは行なえません(両方とも同じ番号にならなければならない) 新規テーブルのIDをオートナンバーにしてしまっていたら、入力時に勝手に番号振られるので、受注テーブルとは関連付け出来ません 最初から受注テーブルに、必要なフィールド作成しておきデータ入力時には必要なフィールドのみが表示されるフォームを作成し、データ出力時には空欄になっているフィールド含めて出力させるクエリでデータ吸い出せば良いだけです 書いている内容からはまだリレーションシップが何なのかが把握出来ていない感じがします

coco--chanel
質問者

補足

tamu1129さん 丁寧なご回答有難うございます。また、説明が下手ですみません。 現在の受注テーブルは初めて作成したもので...恥ずかしながら、リレーションをせず受注テーブルにやたらめったらフィールドを詰め込んである状態なのです。 ちなみに、一つの客先用のデータベースです。 レポート物が多いのでこの先もAccess(現在の受注テーブルのある)を使用するのは必須です。 そして、エクスポート先ソフトは多客先用で入力の二度手間を防ぐため連携する事になったのです。 tamu1129さんのおっしゃるように、[取引先コード][担当者コード][区分コード]は受注テーブル/新規テーブルどちらのフィールドに追加したとしても、選択数が多いので他テーブルを作成し、リレーションさせてデーターを入れるようにしたいとは思っているのですが... やりたい事は...[取引先コード][担当者コード][区分コード]を受注テーブルの必要な内容と一緒にエクスポート先ソフトへ受注~出荷までエクスポートで更新をかけていく形です。 >受注テーブルでデータ入力時にオートナンバーで1が採番された >この番号に関連する新規テーブルのデータ入力したいなら、新規テーブル>のIDが1になるようにしなければ関連付けは行なえません(両方とも同じ>番号にならなければならない) この場合は、新規テーブルのIDは数値型(手入力)にして受注テーブルと同じになるよう(メイン/サブの関係)にすれば大丈夫ですか❓ 問題は何を主体にエクスポートするクエリを作成するかで迷走しています。 エクスポートする際、初回エクスポート/キャンセル処理/変更有り/納入済などのフラグをたてて管理していきたいとは思っています。 まだまだ無知ですね、頭がごちゃごちゃです。 宜しくお願い致します。

回答No.1

不可能

関連するQ&A