- ベストアンサー
AccessからOracle DB(View)を参照する方法について
accessでOracleDBに接続し、アプリケーションを作ろうとしております。 OracleDBのViewを参照し、Accsess側で編集をしようとしております。 AccessからOracleのビューを参照できるようにしましたが、そのビューと accessのテーブルから作成されたクエリが新規レコードの作成ができません。(Accessの画面で「→*」のボタンがグレーアウトになっている) どうすれば新規レコードを追加できるようになりますでしょうか? また、できない場合、どのような代替案がありますでしょうか? すみませんがご回答、宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Viewの構造が、行を特定できないと更新できません。 元のテーブルの主キー・制約を満たすために必要な列が、Viewに含まれていないからだと思います。 「必要な列だけ見せるために定義する」という趣旨に反するようですが、更新を行いたいのであれば、必要な列を含むようにOracleのView定義を見直ししてください。 SQL*PLUSでの更新が可能になれば、ACCESSで更新できるでしょう。 ※リンクテーブルとしてテーブル定義する際に、「データを特定する列を指定してください」的なダイアログが出るはずです。
その他の回答 (2)
- bin-chan
- ベストアンサー率33% (1403/4213)
Oracleの段階で既に更新できないViewでは? SQL*PLUSでInsertまたはUpdateできますか?
補足
ご回答、ありがとうございます。 Oracleの段階で既に更新はできません。 Viewに対してSQL*PLUSでInsertまたはUpdateもできないです。 やはり無理でしょうか?
- bbbug
- ベストアンサー率45% (9/20)
ビューはあくまで「仮想表」ですから、インサートやアップデートは基本的にできません。そのため新規追加がグレーアウトになってできないようになっているわけです。 解決策としては、ビューではなく実際のテーブルに個々にインサートするような仕組みを考えるのが無難です。
お礼
ご回答ありがとうございます。 やはりそうですよね。ただ、ViewではなくTableにすると大きくなってしまうので、少し難しいのです。 ありがとうございました。
お礼
御回答ありがとうございます。 返事が送れましたが、結局Viewの定義を見直すことで対応しました。 ありがとうございました。