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

accessでOracleDBに接続し、アプリケーションを作ろうとしております。
OracleDBのViewを参照し、Accsess側で編集をしようとしております。
AccessからOracleのビューを参照できるようにしましたが、そのビューと
accessのテーブルから作成されたクエリが新規レコードの作成ができません。(Accessの画面で「→*」のボタンがグレーアウトになっている)
どうすれば新規レコードを追加できるようになりますでしょうか?
また、できない場合、どのような代替案がありますでしょうか?
すみませんがご回答、宜しくお願いします。

A 回答 (3件)

Viewの構造が、行を特定できないと更新できません。


元のテーブルの主キー・制約を満たすために必要な列が、Viewに含まれていないからだと思います。
「必要な列だけ見せるために定義する」という趣旨に反するようですが、更新を行いたいのであれば、必要な列を含むようにOracleのView定義を見直ししてください。

SQL*PLUSでの更新が可能になれば、ACCESSで更新できるでしょう。
※リンクテーブルとしてテーブル定義する際に、「データを特定する列を指定してください」的なダイアログが出るはずです。
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。
返事が送れましたが、結局Viewの定義を見直すことで対応しました。
ありがとうございました。

お礼日時:2006/05/15 22:23

Oracleの段階で既に更新できないViewでは?


SQL*PLUSでInsertまたはUpdateできますか?

この回答への補足

ご回答、ありがとうございます。
Oracleの段階で既に更新はできません。
Viewに対してSQL*PLUSでInsertまたはUpdateもできないです。
やはり無理でしょうか?

補足日時:2006/04/11 09:48
    • good
    • 0

ビューはあくまで「仮想表」ですから、インサートやアップデートは基本的にできません。

そのため新規追加がグレーアウトになってできないようになっているわけです。

解決策としては、ビューではなく実際のテーブルに個々にインサートするような仕組みを考えるのが無難です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
やはりそうですよね。ただ、ViewではなくTableにすると大きくなってしまうので、少し難しいのです。
ありがとうございました。

お礼日時:2006/04/11 09:48

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

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