Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトル更新可能クエリになったりならなかったりする
記事No10785
投稿日: 2011/05/13(Fri) 11:23
投稿者二尾
解決済: ON
OS:xp
Access Version:2007

お世話になります。
クエリをフォームに連結させ、一部データを手入力させる
更新可能クエリを作成したいのですが、
同じレコードで入力が可能になったり受け付けてくれなかったりします。

構成は以下になります。

●主キー

テーブル1
 ●フィールドA
 ●フィールドB
 ●フィールドC
 ●フィールドD
 ○手入力項目

テーブル2
 ●フィールドA
 ●フィールドB
 ●フィールドC
 ●フィールドD

テーブル3
 ●フィールドA
 ●フィールドB
 ●フィールドC

SELECT T1.*

FROM(
	テーブル1 AS T1

LEFT JOIN 
	テーブル2 AS T2
ON
	T1.フィールドA = T2.フィールドA AND
	T1.フィールドB = T2.フィールドB AND
	T1.フィールドC = T2.フィールドC AND
	T1.フィールドD = T2.フィールドD)

LEFT JOIN 
	テーブル3 AS T3
ON
	T1.フィールドA = T3.フィールドA AND
	T1.フィールドB = T3.フィールドB AND
	T1.フィールドC = T3.フィールドC

テーブルにリレーションは張っていません。

テーブルをデザイナ画面であれこれ操作保存すると(主キー以外のフィールドを追加削除)
更新ができなくなります。

一度クエリのSQLを内容は変えずとも「上書きしますか?」と聞かれ、上書きすると
また更新可能になります。

質問なのですが、この可能になったりならなかったりするのは

 ・そもそも私の連結がおかしく、更新可能になるのがたまたま
 ・クエリをリセット(?)することで、何かの情報が更新され可能になる
  (テーブルを触らない限り、再度更新不可能になることはない)

のでしょうか?

詳しい方どうぞ教えてください。

タイトルRe: 更新可能クエリになったりならなかったりする
記事No10787
投稿日: 2011/05/16(Mon) 12:16
投稿者二尾
解決済: ON
以下で自己解決致しました。

http://support.microsoft.com/kb/328828/ja

多対一対多のリレーションシップが設定された 3 つ以上のテーブルに基づくクエリでは、クエリで直接データを更新することはできません。フォームやデータ アクセス ページでは、データを更新できます。フォームの [レコードセット] プロパティを [ダイナセット (矛盾を許す)] に設定すると、クエリに基づいてデータを更新できます。


言われてみると、今まで自分が作成した更新可能クエリは
一対一対多であったような気がします。
(何故更新できる場合もあるのかは不思議なのですが)

質問をご覧いただいた方ありがとうございました。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る