• ベストアンサー

クエリを組むと入力できません

Access初心者です。 クエリを組むと入力が出来なくなります。 Aテーブル:ID、解約日、登録日 Bテーブル:ID、解約日、解約ID A・Bテーブルの「ID」同士を紐付けし、抽出されたAテーブルの「ID」フィールドにBテーブルの「解約ID」をコピペしたいのですが、うまくいきません。 抽出されたAテーブルの「ID」フィールドのみ書き込みが出来なくなってしまいます。 どうしてなのでしょうか。 説明不足で申し訳ございません。 宜しくお願い致します。

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

  • ベストアンサー
  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

紐付けに使っている『ID』の値を直接書き換えることは出来ません。 書き換えする場合は以下の手順になります。 1.Aテーブルに新しい項目を追加します。(仮にID2とします。) 2.新たにAテーブルとBテーブルでクエリを組み、解約IDをID2に貼り付けます。 3.IDを主キーにしている場合、外します 4.さらにAテーブルのみでクエリを作り、ID2がNULLでないものを抽出し、ID2をIDに貼り付けます。 5.今後必要がなければID2は削除します。 6.必要に応じてIDに主キーを設定します。 もしよろしければ、一度お試しください。

apple5515
質問者

お礼

ご回答ありがとうございました。 早速試したところ、とても分かりやすいご説明でスッキリ解決いたしました。 本当にありがとうございました。

その他の回答 (1)

  • Kazamin
  • ベストアンサー率30% (17/56)
回答No.1

回答ではないのですが、 それぞれのテーブルの主キーは「ID」ですか? テーブルに主キーの設定をしてないと、複数のテーブルを 結合させた選択クエリを開いての更新はできないのでは ないかと思います。(キーを設定していてもできない場合はありますが)

apple5515
質問者

お礼

早々のご連絡ありがとうございました。 「ID」に主キーを設定しておりました。 無事解決いたしました。

関連するQ&A

  • クエリにおける複数値の抽出について

    クエリにおける複数値の抽出について access2007を使用しています。 テーブルA,テーブルBを元にクエリCを作成しました。 テーブルAには担当というフィールドがありますが,複数の値の入力を許可しており,テーブルBを値集合ソースとして設定してあります。 クエリCにおいて,以下のような抽出をしたいと考えています。 例えば, ID_所員ID_担当 001_B001,B002,B003_山田,佐藤,鈴木 002_B002_佐藤 003_B001,B002_山田,佐藤 において,所員IDの抽出条件のところにB002と入力すると,ID002のみが抽出されるといった感じです。 B002と抽出条件を設定すると,B002を含む全てのレコードが抽出されてしまいます。この場合ですと,ID001から003の全てのレコードが抽出されます。 担当のところで抽出条件を佐藤と設定し,さらに所員IDの抽出条件のところに,Len関数を使用して4文字以下とすれば…とも考えたのですが上手くいきません。 もし,良い方法があればご教示ください。

  • accessのクエリで入力が不可能…

    【テーブルA】 フィールド1〔数値型〕 フィールド2〔テキスト型〕 フィールド3〔テキスト型〕 フィールド4〔数値型〕 【テーブルB】 フィールド1〔数値型〕 フィールド2〔テキスト型〕 フィールド3〔数値型〕 フィールド4〔テキスト型〕 となっています。 両方のテーブルを使い、クエリを作成しました。 リレーションが、テーブルAのフィールド1と、テーブルBのフィールド3に設定してあります。 このようにして作成したクエリでデータの入力ができません。 なぜでしょうか? Access2000です。

  • クエリで・・・・

    Windows2000/Access2000 いつもお世話になってます。 1つのテーブルに諸費用A・諸費用B・消費税という項目がありま。 それぞれOより大きい場合を抽出するクエリを設定しました。抽出条件に“>0”を入れて抽出出来るようにしましたが、諸費用Aと諸費用Bがそれぞれ0より大きく、消費税だけが0だった場合の結果が、抽出されませんでした。 1つもしくは2つが0でも抽出されるようにしたい場合はどのように設定したら良いのでしょうか? それぞれ別々にクエリを作らないと駄目なのでしょうか? 宜しくお願いします。

  • Access2010「クエリが複雑すぎます」

    お世話になります。 ユニオンクエリAがあり、そのクエリを使用してクエリB(テーブルや別のクエリとも紐付け)を作成しました。問題なく抽出できます。  <クエリB>  ユニオンクエリA ----→ クエリX              |               ---→ テーブル1              |               ---→ テーブル2              |               ---→ テーブル3 新たにユニオンクエリAを使って、クエリCを作成したところ「クエリが複雑すぎます」と表示されてしまいます。いくつかのテーブル/クエリと紐付けていたので、一つずつ取っていったところ、最終的にはユニオンクエリA一つでもエラーが出てしまいます。単純な選択クエリです。 クエリBは同じユニオンクエリAを使い、複数のクエリとテーブルとを紐付けているのにも関わらずエラーとなりません。。 どのようなことが考えられますでしょうか。 Accessを起動し直したり、端末自体も再起動しましたが状況変わらずでした。 また、ユニオンクエリA単体を開いても問題無く抽出されます。 ご教授の程、宜しくお願い致します。

  • クエリーで全部のデータを抽出する方法

    アクセスのクエリーでデータを抽出する時、具体的にはフォームでデータを入力し抽出するのですが、たとえばフォームのテキストボックスに数字を入れないとそのクエリーのフィールドは抽出がかからないようにしたいのです。(抽出フィールドが1つなら数字をいれなければクエリーのデータすべてが表示される) ----------------------------------- フィールド   A      B     c テーブル   テーブル1 テーブル1 テーブル1 抽出条件    []    [] または    ---------------------------------- 上はクエリーのデザインですがクエリーをひらくと抽出条件をきいてきますがA列は何も入力しないでB列では1と入力するとBの列に1の入ってるレコードを表示させたいのです。(もし空欄が無理ならAの列の時何かある文字を入力すると全部表示になる、でもいいです。) まわりくどくなりましたが、アクセス超入門者です。よろしくおねがいします。

  • access クエリーによるフィールド挿入について

    クエリーにて、抽出処理をしますが、その中で、設定されていないフィールドを故意に挿入追加することはできますか?  例  「メモ」 欄は、いずれの対象テーブル、クエリーになく、    クエリー操作により、A B C メモ D という 結果を作成したい。    ※A~Dは、いずれかのテーブル、クエリーに設定されている。   ちなみに、メモ については、当然空白のみであり、入力プロパティはなんでもいいです。 ちなみに、access 2003が対象です。

  • access2007 クエリで抽出

    初心者です。クエリで抽出したのですが、一部のデータが抜け落ちます。抽出条件のフィールドはテキスト型で、元のテーブルでコピペで統一しましたが、同じデータが抜け落ちます。削除してやり直しても同様でした。重複クエリを作成するとこのフィールドが重複して出てきます。どこを直したらいいのか見当がつきません。よろしくお願いします。

  • 【Access】フィールドにつけた別名を同じクエリで抽出に使いたいです

    【Access】フィールドにつけた別名を同じクエリで抽出に使いたいです。 Access2003を使っています。 困っている状況は以下のようなもです。 ■テーブル1  ・フィールド1 ■クエリ1  ・フィールドA:フィールド1  ・フィールドB:[フィールドA]   【抽出条件】>=10 このような条件で、クエリを実行すると、 「パラメータの入力 フィールドA」というダイアログが立ち上がってしまいます。 上記載のクエリ1でフィールドAの[]は自然についてしまうのではずせません。 今はもう一つクエリを作る事でこの状況はなんとかしましたが、フィールドに別名をつける毎にクエリを作るとクエリの数が多くなってしまうので困っています。 クエリでフィールドに別名をつけた場合は、そのクエリ上でその別名を使って抽出をかけることはできないのでしょうか? よろしくお願いします。

  • Accessクエリに入力する式について教えてください。

    こんにちはWin98SE/Access2000です。 例えば AフィールドのチェックボックスがONで尚且つ、Bフィールドに数値型の値が入っていて、さらにCフィールドに日付が入った時に DフィールドにBフィールドの値を取込むと言う作業をAccessにさせたいのですが、Accessのクエリ(デザインビューのフィールドか抽出条件に設定)で関数又はSQLを使用して実現できますか。 もし出来るようでしたら、例的なもので結構ですので式等アドバイスをいただけないでしょうか宜しくお願いします。 (関数&SQL初心者です。)

  • テキストボックスにクエリ結果を表示させたい

    フォームにテキストボックスAがあり、そこに入力した文字(下記テーブルのフィールド1の文字)をクエリーの「抽出条件」にし、同じフォーム上のテキストボックスBに表示しようと思っています。 クエリを開くとパラメータの入力を求めてきて、入力するとうまく抽出されます。 テーブルは フィールド1|フィールド2   A   |  10   B   |  20   C   |  30   D   |  40 のような簡単なものです。 テキストボックスBのコントロールソースに 「=[○×クエリ]![フィールド2]とやっても「#Name?」と表示されてしまいます。 どのようにやればよいのでしょうか?

専門家に質問してみよう