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.上記のクエリを基に、ウィザードを利用して単票フォームを作成したのですが、データの更新ができないフォームが出来上がってしまいました。
 どうしたら、データの更新ができるようになるのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

こんばんわ。

 先日の続きです。

#ヘルプの質問で、
#“クエリからのデータ更新について”
#と入力して下さい。 クエリのタイプ別で更新可能/不可能/別の更新方法が見られます。

あるクエリを元にしたフォームにもそのまま当てはまりますので、これがズバリの回答となるでしょう。

先日の推測ですが、

1:不正解
([テーブル1] - [テーブル2] の関係が、一対多の場合は“通常は”更新可能、一部不可。)

2:正解
(ただし集約クエリという表現でなく、定義域集計関数を使用したクエリとなっています。)

3:不正解
(外部結合が存在する一対多リレーションシップで、"一" 側のテーブルにある空白フィールドは更新不可だが、普通は更新可能。)

4:どちらかといえば正解
("UniqueValues/固有の値" プロパティに [Yes/はい] が設定されているクエリは更新不可。)

ただし、これら以外にもいろいろとあるようです。

Accessの限界、についての話ですが、
「Visual Basic 6.0 + SQL Server 7.0 ビジネスアプリケーション構築ガイド」ソフトバンク
という本の、COLIMN「悪者は誰だ」(P.217)を読みまして、今後の方針が決まりました。 patman2さんが今開発なさっているシステムがパーソナルユースでは無い物であったり、コアコンピダンスな業務の物であったり、VBAをバリバリ使ってでもそのシステムを完成させたいのでしたら、この本は非常にお勧めです。

ではこれにて。 ご武運を。
    • good
    • 0
この回答へのお礼

ありがとうございました。
私が今作ろうとしているシステムは、社内のサーバーを介して10数人で利用するためのものです。
ご指摘の本を読んでみようと思うのですが、この本は普通の本屋で販売しているものなのですか?
とにかく、探してみます。

お礼日時:2001/05/11 03:31

こんばんわ。


現在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
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

Q値をテーブルに数値型として保持する方法を教えてくだ

アクセスのテーブルに数値型のフィールドを作って、
小数点以下表示桁数を1にしてるのに、
12.5と入れると12になってしまいます。

12.5という値をテーブルに数値型として保持する方法を教えてください。

Aベストアンサー

「数値型」にもいろいろあると思うけど、何を選んでますか?

また、おかしくなるのはテーブルをデータシートビューで開いたとき?
それとも、フォーム上のフィールド等?

Qアクセス:Yes/No型→チェックいれたら、"○"を表示。

あるフィールドの書式をYes/No型にしてます。
そして、チェックを入れたらフォームビューでは"○"を表示する。

というようなことはできますか??
アクセス初心者です。。
すみませんが、よろしくお願いいたします。

Aベストアンサー

であれば、論理式を組み合わせれば済む事です
=iif([フィールドA]=0,"",iif([フィールドC]=0,"","○"))
こんな感じですかね

QACCESS2000数値型⇒テキスト型変換

ACCESS2000でクエリーで例えば25.0の数値を"25.0"そのままの形の文字列に変換したいのですが、Formt関数とか使っても"25"になってしまいます。"25.0"と表示させる方法ないでしょうか?お願いします。

Aベストアンサー

> 「#」は値が該当の桁の値がゼロ、または存在しないときに表示を抑止することを意味し、
> 「0」は該当の桁の値がゼロ、または存在しないときに0を表示することを意味します。

下記に訂正します。

「#」は値が該当の桁が存在しないときに表示を抑止することを意味し、「0」は該当の桁が存在しないときに0を表示することを意味します。

QOfficeアクセス テーブル「テキスト型」⇒「日付型」への変換について

テーブルにデータが保管されており、そのフィールドの一つに「テキスト型」で”20080301”のようなデータを持っています。これを「日付/時刻型」”2008/03/01”のように変換したいのですが、どのようにすればよいのでしょうか。

※ちなみにこのオリジナルデータは毎日、自動的にテーブルにダウンロードされており、このテーブル自体の型を予め「日付/時刻型」に変換すると、日々のデータ取得時にエラーとなってしまいます。ですので、「日付/時刻型」のフィールドを持った新規のテーブルに、この”20080301”のデータを変換し格納したいのですがどのようにすればよろしいでしょうか。

テーブル⇒デザインより、該当のフィールドの型を「テキスト型」⇒「日付/時刻型」へ直接変換してしまうと、「データの変換中にエラーが発生しました。○○件のレコードのデータが失われました。」と表示されます。素人のため、なるべく追加クエリや更新クエリや簡単な関数のみでの方法を教えていただけたら幸いです。

Aベストアンサー

テーブルに日付時刻型フィールドを追加して、
更新クエリを使って、#1さんが提案されている
数式を使えばよいのでは?

Qアクセス フィールド名変更と別テーブル作成 access2010です。 既存テーブル名:AAA 既存

アクセス フィールド名変更と別テーブル作成



access2010です。

既存テーブル名:AAA
既存フィールド名:あああ

これをレコード内容、型式を変えずに別の新テーブルに新フィールド名で作りたいです。

新テーブル名:BBB
新フィールド名:かかか

よろしくお願いします。

Aベストアンサー

テーブルを構造とデータを含めてコピーして、フィールド名を変えればよいのでは?


人気Q&Aランキング

おすすめ情報