• ベストアンサー
  • すぐに回答を!

AccessでOracleのテーブルをリンクし、Access側では読み取り専用にしたい

社内にOracleデータベースでのシステムが立ち上がっているのですが、管理帳票の出力用に、OracleのデータをAccessで読み込みたいと思っています。 テーブルのリンクそのものは知っており、成功しているのですが、Oracleデータベースのデータを壊さないようにするため、このリンクテーブルを読み取り専用にしたいと思っています。どのようにすれば良いでしょうか。 なお、Oracle側で読み取り専用ユーザを作成して、そのユーザでリンクすれば良いことは理解していますが、それは最後の手段にしたいと思っています。別の方法でうまくできないでしょうか。

共感・応援の気持ちを伝えよう!

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.3

Accessからは、ODBCでOracleにリンク接続しているのでしょうか? それであれば、ODBCの設定画面(コントロールパネル→管理ツール→データソース(ODBC))で、「読み取り専用接続」という設定がありますので、そこにチェックをすればOKだと思います。

共感・感謝の気持ちを伝えよう!

その他の回答 (2)

  • 回答No.2
  • O_cyan
  • ベストアンサー率59% (745/1260)

>リンクテーブルを読み取り専用にしたいと思っています。どのようにすれば良いでしょうか。 ADOでadLockReadOnlyで開けば読み取り専用になります。 一般的に例えば Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset cn.ConnectionString = "Provider=MSDAORA; Data Source=xxx; USER ID=xxx; PASSWORD=xxx;" cn.Open rs.Open "オラクルのテーブル", cn, adOpenKeyset, adLockReadOnly

共感・感謝の気持ちを伝えよう!

  • 回答No.1

Oracle側で読み取り専用ユーザを作成するというのが一般的ですが、それが最後の手段となると… リンクテーブルではなく、インポートしてはどうですか? 管理帳票の出力となると、一旦〆てからの作成になると思うので、不都合はないと思いますが… インポートの時間はかかるでしょうが、インポートするテーブルに必要なインデックスを作成すれば、処理時間は短くなりますよ。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • アクセスにオラクルのテーブルをリンク

    アクセスでオラクルのテーブルを ODBCでリンクしたいのですが そのとき オラクルのユーザー名を 例えば USERNAME で リンクしたいテーブルを TABLE1 として、 リンクすると アクセス 上では  USERNAME_TABLE1 と言う様に ユーザ名 + テーブル名 になってしまいます。 使用したいのは テーブル名だけなので できれば ユーザ名がつかないでリンクしたいのですが、そう言う事はできないのでしょうか?  テーブルの量がたくさんあるので あとから名前を変更するのが大変なんです・・・  

  • AccessからORACLEへのリンク設定について教えてください

    初心者ですが仕事でORACLEとAccessを使っています。 ORACLEのメンテナンスのため、ORACLEのテーブルにAccessからリンクを設定しようとしましたが、下記エラーになります。 「システムで予約されているエラー(-7778)です。このエラーへのメッセージはありません。」 Accessの方はORACLEクライアントがインストールしているパソコンで使っていて、そのパソコンの業務ソフトは問題なく動いてORACLEからデータを出し入れしています。  使用しているソフトはORACLE7.3.4とAccess2000です。 この場合の対処方法をご存じの方がいらっしゃいましたらお教えください。よろしくお願いします。

  • AccessからOracleへのリンクテーブル時の型情報?

    Access始めたばかりの初心者です。 現在Oracle10gのデータベースのとあるテーブルを をAccess2000でリンクし、クエリで抽出したものをレポートに表示 しようとしています。 そのテーブル上に、 Oracle上ではVARCHAR2(6バイト)の日付データがあります。 例) 200806 これをAccessのクエリ上で変換し、 "6月" と表示させたいのですが、 なぜかうまくいきません。 Oracle上の項目名が YM だとすると、 Replace(Right([YM], 2), "0", "") & "月" こういった関数でうまくいきそうなものですが・・ もしかしてOracleのVARCHAR2はリンクすると文字列型以外の型として 扱われるのでしょうか・・ どなたかご存じの方、ご教授くださいませ。

  • リンクテーブルによる基幹システムへの影響について

    OS:Windows XP Access Version:Access2003 某システム開発会社に開発を頼んでいる通販システムが社内にあります。 (400万程度の小規模なものです) 基幹のデータベースはOracle10.1になります。 システムの開発費用が予算より高くついてしまっている為、DBから分析用データを抽出するツールは 社内でAccessを使って行おうと思っています。 仕様は単純にOracleの参照用ユーザーを用意してリンクテーブルをAccessで作り データをローカルmdbファイルに落としこもうと思っています。 今後システム開発会社と協議することになりますが、システムへの影響を建前に システム開発会社にて開発するよう主張してくる可能性があります。 社内で上記の仕様でAccessでリンクテーブルを作成するに当り、現状のシステムに 何かしらの悪影響を与えることはあるのでしょうか。 分析用データの抽出であるため、深夜帯のアクセス時間が少ない時間にデータ抽出する 予定でおります。 また、データ量は最大のもので受注履歴データが10万件程度あります。 インフラ環境はサーバークライアント型で、クライアントにOracleが入っているのでそこでAccessの リンクテーブルを作成する予定でおります。 尚、AccessとOracleに関する知識は忘れているものもありますが、上記のテーブルを作成する ぐらいであれば可能と思います。手順はこんな感じで考えております。 http://www.venus.dti.ne.jp/~yoshi-o/RDB/Oracle-Access-NewTableMake.html 考えられるリスクや、アドバイスなどについてご教授頂ければと思います。 よろしくお願い致します。

  • odbc接続でaccessのテーブルにリンクを張るには

    オラクルのデータベースからodbc接続でaccessにテーブルをリンクしようとしているのですが、起動した1回だけオラクルのユーザとパスワードがでてきます。ユーザとパスワードをいれずにテーブルをひらくことができるのでしょうか。オラクルのodbcを使っています。odbcの登録にはパスワードを登録するところがありませんでした。

  • MS-Accessのリンクテーブルで更新

    MS-Accessのリンクテーブルで更新 MS-Accessのリンクテーブルを使用して、 Oracleデータベースの表に対して 値の更新をしようとしていますが、 更新が競合しているというメッセージが出て、 更新できません。 また、値の更新をしようとしているタイミングで、 Oracleデータベース側のリンクテーブル対象表に アクセスしている処理はなく、 更新が競合していることありません。 ODBCドライバの設定では、読み取り専用設定は 実施してない点は確認しています。 使用しているソフトウェアの各バージョンは以下になります。 Access 2007 Oracle 10.2.0.4.0 WindowsXP SP3 ODBCドライバ 10.02.00.01 リンクテーブルからの更新自体がそもそも出来ないのでしょうか? MS-Accessを使用してOracleデータベースの表の値を更新したいと思っているのですが、 解決方法をご存知の方がいらっしゃいましたら、教えていただけないでしょうか?

  • ODBCリンクの際にACCESSでは読み取り専用にしたい!

    OracleデータベースをODBCでリンクしてACCESSで利用する際に、ACCESSではデータの更新をできないように(つまり読み取り専用に)したいんですが、どのように設定したらいいのでしょうか?基本的な質問で恐縮ですが、ご教示ください。

  • オラクルテーブルで受け付けない文字

    ACCESS97のデータベースで オラクルのテーブルを使用しています。 アクセスのテーブルではクエリーが実行できたのですが (実行時に読込めた) 名前を変更して、(リンクしている)オラクルテーブルで実施すると 上手く行きません。 オラクルテーブルでは、受けつけない文字があると聞いたことがあります。 例えば、 " や ' など。 このような文字 一覧がわかるページ等 ないでしょうか? 

  • ASPでACCESSからoracleにリンクさせて表示したい。

    はじめまして。 いろいろ調べてみたのですが、わからなかったので質問させてください。 現在、ASPを利用してACCESS(2003)のテーブルから簡単な検索をできるようにしています。 このACCESSのテーブルは、別サーバーで動いているoracle(10g)のデーターベースから EXCELでエクスポートしたものを、ACCESSでインポートして使用していました。 この手間を省くため、ACCESSとoracleをODBCを使用してリンクさせたいと思いました。 まず、ODBCのシステムDSNで「oracle in oraclient10g」で追加して、接続を確認。 その後、ACCESSにてODBCでテーブルをリンクさせて開くことも確認できました。しかし、 WEB上で確認したところ、サーバー側・クライアント側でも以下のエラーが出てしまいます。 Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Driver] ODBC--'****' への接続が失敗しました。 これはどのようにすれば、出来るようになるでしょうか。 初歩的な質問で申し訳ありませんが、ご教授ください。 よろしくお願いします。

  • AccessとDB2のテーブルリンクで…

    お世話になります。 ある2台のサーバーが社内にあります。 その2台のサーバーにはそれぞれ、IBMのDB2というデータベースを使用していて、それぞれのDB2内には同じデータベース名(テーブル)が存在します。 現在、サーバーAから新サーバーBに社内WEBシステムの移行を行っていて、Access2000のテーブルリンクを使って、サーバーAにあるDB2のデータベースAのテーブルとリンクをしています。 その際、テーブルリンクをする為にWindows2000の「ODBC データソース アドミニストレータ」のシステムDSNで、「IBM DB2 ODBC DRIVER」を使用してデータベースAにODBCを介して接続しております。 ですが、サーバーA側と同じ名前の、新サーバーBのデータベースAにODBCを介してテーブルリンクを繋ごうとすると、サーバーAと新サーバーBのデータベースAという名前が同じだからか、システムデータソースを追加しても、新サーバーB側のデータベースAに接続が出来ません。 この場合、新サーバーBのデータベースAの名前を同じものではなく、別の名前に変更した方が宜しいのでしょうか。 質問内容に不足な点がございましたら、内容を再度追加致します。 どうぞご教授宜しくお願いします。