1.以下の二つのテーブルを作成しました。
・テーブル1
case_no:数値型
ap_no:テキスト型
ap_date:日付型
kanriID:数値型
・テーブル2
kanriID:数値型
F_name:テキスト型
2.上記した二つのテーブルの「KanriID」をリレーションシップして、
さらに、下記の項目をピックアップした選択クエリを作成しました。
case_no
ap_no
ap_date
kanriID(テーブル1)
F_name
3.上記のクエリを基に、ウィザードを利用して単票フォームを作成したのですが、データの更新ができないフォームが出来上がってしまいました。
どうしたら、データの更新ができるようになるのでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんばんわ。
現在Accessが手元に無く、ヘルプも参照せずのうる覚え状態ですが…
推測1:
[テーブル1] - [テーブル2] の関係が、多対一の場合は更新可能
[テーブル1] - [テーブル2] の関係が、一対多の場合は更新不可?(出来たかもしれない)
推測2:集約クエリ
合計(SUM)、カウント(COUNT)などのグループ関数が使用出来る集約クエリになっていると、Accessの仕様により読み取り専用になる。
推測3:外部結合
テーブルの結合の種類が、例えば“テーブル1の全てのレコードと、テーブル2の対応するレコードとを結合”(テーブル2に対応するレコードが無い場合、F_nameがnullになる)のような外部結合になっていると、Accessの仕様により読み取り専用になる。(更新できたかもしれない)
推測4:クエリのプロバディ
デザインビューで、何も無い所をダブルクリックした時に出る、クエリそのもののプロパティに、更新の可・不可を設定する項目があったかどうか…?
ヘルプでは、“レコードセット”で見つけられ…たかどうか?(笑) 判ったらまた。
私も以前この問題で結構悩みました。 どうもDBのスタンダードでは、クエリの結果(ビュー)は更新できない、というのが当たり前という暗黙のご了解があるようです。 そもそもそういうものだと。 Accessの、簡単な選択クエリをもとにしたレコードセットが更新可能なのは、むしろ例外的な親切機能なのでしょうか?
しかし現実的には、正規化したDBなら、参照の4つや5つは当然したい。 逆に言えば、非正規化して対処するしかない… VBAを使わない限りは。(苦笑) VBAでこの問題を解決できるスキルがあれば、Accessにこだわる必要自体が。(笑)
門外漢でもDBが簡単に出来そうな顔してますがちょっと突っ込むと壁だらけなのがAccessなのだと嘆息する今日この頃です。(笑)
でも、この辺のAccessの限界を十分把握しつつ、適切な規模で使うなら、本当にものすごく手軽にDBできて素晴らしいと思います。
愚痴の方が長くなってしまいました。(笑) ご勘弁下さい。
これに関連した質問を私がしています。 ご参照を。
参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=65481
No.2
- 回答日時:
こんばんわ。
先日の続きです。#ヘルプの質問で、
#“クエリからのデータ更新について”
#と入力して下さい。 クエリのタイプ別で更新可能/不可能/別の更新方法が見られます。
あるクエリを元にしたフォームにもそのまま当てはまりますので、これがズバリの回答となるでしょう。
先日の推測ですが、
1:不正解
([テーブル1] - [テーブル2] の関係が、一対多の場合は“通常は”更新可能、一部不可。)
2:正解
(ただし集約クエリという表現でなく、定義域集計関数を使用したクエリとなっています。)
3:不正解
(外部結合が存在する一対多リレーションシップで、"一" 側のテーブルにある空白フィールドは更新不可だが、普通は更新可能。)
4:どちらかといえば正解
("UniqueValues/固有の値" プロパティに [Yes/はい] が設定されているクエリは更新不可。)
ただし、これら以外にもいろいろとあるようです。
Accessの限界、についての話ですが、
「Visual Basic 6.0 + SQL Server 7.0 ビジネスアプリケーション構築ガイド」ソフトバンク
という本の、COLIMN「悪者は誰だ」(P.217)を読みまして、今後の方針が決まりました。 patman2さんが今開発なさっているシステムがパーソナルユースでは無い物であったり、コアコンピダンスな業務の物であったり、VBAをバリバリ使ってでもそのシステムを完成させたいのでしたら、この本は非常にお勧めです。
ではこれにて。 ご武運を。
ありがとうございました。
私が今作ろうとしているシステムは、社内のサーバーを介して10数人で利用するためのものです。
ご指摘の本を読んでみようと思うのですが、この本は普通の本屋で販売しているものなのですか?
とにかく、探してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Oracle SQL update方法 2 2022/06/22 14:07
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL MySQLのテーブル作成で 自信がありません。 2 2022/08/28 05:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセス 項目毎にデータを横...
-
デザインビューにてテーブルが...
-
クエリのデータをテーブルに入...
-
ACCESSで行数指定(5万行目~8...
-
access インポート時、既にある...
-
クロス集計クエリの結果をテー...
-
accessでクエリの結果だけをリ...
-
Access「レコードが削除されま...
-
アクセス:クエリの結合とリレ...
-
更新不可能なクエリに対して更...
-
Access テーブルを検索し関連性...
-
アクセスのクエリでSplit関数は...
-
Access DAOのExecuteメソッドの...
-
Access 各カラムの中に半角カ...
-
アクセス(access)組み合わせ...
-
access テーブル作成クエリでテ...
-
教えてください! アクセスのac...
-
Accessでテーブルにあるレコー...
-
Access 末尾に0を追加したい
-
Accessクエリの、JOINの数の限...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クロス集計クエリの結果をテー...
-
デザインビューにてテーブルが...
-
アクセス 項目毎にデータを横...
-
クエリのデータをテーブルに入...
-
accessでクエリの結果だけをリ...
-
アクセス:クエリの結合とリレ...
-
教えてください! アクセスのac...
-
Access「レコードが削除されま...
-
更新不可能なクエリに対して更...
-
アクセス クロス集計クエリ→テ...
-
アクセスのクエリでSplit関数は...
-
access インポート時、既にある...
-
ACCESSで行数指定(5万行目~8...
-
テンポラリファイルのための空...
-
Access DAOのExecuteメソッドの...
-
ACCESSでの重複レコードの削除
-
Accessのクロス集計→テーブル作...
-
Access2010「クエリが複雑すぎ...
-
access テーブル作成クエリでテ...
-
ACCESS2000 クエリをテーブル化...
おすすめ情報