プロが教える店舗&オフィスのセキュリティ対策術

アクセスでまたつまずいてしまいました。ちょっと教えてください。
複数のテーブルから選択クエリを作り、それを基にオートフォームでフォームを作ったのですが、フォームでデータの入力が出来ません。クエリでもデータの入力が出来ません。
「このレコードセットは更新できません」と下のほうに出ます。
フォームのプロパティのデータの更新の許可と、データ入力用のところは“はい”になっています。
私では原因がわかりません。わかりにくい質問でしょうが、どなたかご指導お願いします。

A 回答 (3件)

No2さんと似たような回答になりますが


SELECTしたデータが
主キーで結合でき
1:1、1:nやn:1の場合は、お互いの主キーをSELECTに加えてあれば
更新可能だと思います。
しかし n:nの場合は、更新できません。
具体的に表現すると

伝票テーブル
 伝票NO      主キー
 伝票日付      
 得意先ID

伝票明細Aテーブル
 伝票NO      主キー
 明細番号      主キー
 伝票日付      
 商品ID
 金額

は、 伝票テーブル.伝票NO → 伝票明細Aテーブル.伝票NOで結合すれば
更新OK   

しかし

伝票明細Aテーブル
 伝票NO      主キー
 明細番号      主キー
 伝票日付      
 商品ID
 金額

伝票明細Bテーブル
 伝票NO      主キー
 伝票日付      
 科目ID      主キー
 補助科目ID
 
は、 伝票明細Bテーブル.伝票NO → 伝票明細Aテーブル.伝票NOで結合しても
n:nになるので更新不可

また

伝票明細Aテーブル
 伝票NO      主キー
 明細番号      主キー
 伝票日付      
 商品ID
 金額

商品マスタ
 商品ID      主キー
 商品名

を伝票明細Aテーブル.商品ID → 商品マスタ.商品IDと結合しても主キー同士で結合できないので更新不可です。

複数のテーブルを使うときは最後の形態がよく使われます。
伝票の中にマスタデータのキー情報を持ち名称をマスタから取得する場合など

この条件に当てはまりませんか?
    • good
    • 0
この回答へのお礼

お世話になります。結局1つ別の選択クエリを作り、テーブルも違うのを新しく作り、この2つから選択クエリを作ったらなぜか出来ました。よく解らないままですが、アドバイスはよく解りました。今後の参考にします。
ありがとうございました。またお願いします。

お礼日時:2002/03/04 11:00

簡単に説明すると、参照される側のテーブルへのリレーションが、主キーである必要があります。



つまりこういうことです。
"売上テーブル"と"商品マスタ"があったとして、
"売上テーブル"の商品コードと"商品マスタ"の商品コードを結合したいとします。
その場合、参照される側の"商品マスタ"は、"商品コード"が主キーでないと更新できません。

主キーで結合できない場合は、フォーム上のイベントを使うなどして、値を取得する工夫が必要です。
    • good
    • 0
この回答へのお礼

たびたびお世話になります。よく解りませんが解決できました。
ありがとうございました。

お礼日時:2002/03/04 10:50

クエリーの内容によって、更新出来る項目とできない項目があります。



Accessのヘルプの質問のことろに
「クエリのデータを更新できない」
を入れて調べてみると詳細が書いてあります。
    • good
    • 0
この回答へのお礼

たびたびお世話になり、ありがとうございます。参考になりました。

お礼日時:2002/03/04 10:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す