• ベストアンサー

MsAccessからOracleDBへの操作について知りたいのですが…

初めまして。Accessを使ってAccessのmdbを作成、使用している者です。  会社で「ORACLEのDBもAccessから更新できるそうだから、そのデータの更新用画面等を作って」と言われ、準備をしているところです。  「裏技」本等を見て、ODBCドライバをAccessを使用するコンピュータへ導入し、リンクテーブル機能を使用すればORACLEのDBへアクセス可能なのは文章上で確認しました。が、その後の操作性が気になっています。  Accessで通常行っているクエリやフォーム、マクロの作成・実行方法は、ORACLEのDBが対象になっても全然変わらないのでしょうか?SQL文を一から作成しなければいけない、ということにはならないでしょうか?  単純に「対象テーブルがORACLEになるだけで、Access上の操作性は変わらないらしいよ」と会社の人には言われたのですが、その情報元が不明なのと、実際その方が担当する訳ではないので本当にそうなのか不安です。  ちなみに、ORACLEのDBはデータ準備中で、まだAccessでどうなるかと確認出来ていません。 質問の仕方が下手で申し訳ありませんが、どなたかお返事を頂けたら助かります。宜しくお願いします。

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

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

ODBCを使ってテーブルをリンクさせれば良いと思いますが。 ファイルメニューの外部データの取り込みでテーブルのリンクを選択する。 リンクの設定画面からファイルの種類で[ODBCデータべース]を選択し新規作成ボタンからドライバの選択画面になったらドライバの中からMicrosoft ODBC for Oracleを選択しデータソースの保存場所等を設定すればリンクできます。 あとはADOを使ってAccessのVBで接続する。 Dim cnn As New ADODB.Connection Dim rec As New ADODB.Recordset cnn.Open "Provider=MSDAORA;" & _ "Data Source=NT;", "×××", "××" rec.Open "select * from Teble", cnn, _ adOpenKeyset, adLockOptimistic このようにOracleとの接続を確立してSQLステートメントを指定してレコードセットを作成しレコードセットを取得して使用する。 こんな感じになりますが。 パススルークエリとかトランザクションとか必要になってくるものは覚えなくてはいけませんがでも概ね大丈夫です。

kb2006
質問者

補足

O_cyanさん、お返事ありがとうございます。 ですが…、既に「ADOを使って~」というところでつまづいてしまいました。この命令文は、どのタイミングでどのように指定して実行するものなのでしょうか。 この実行をAccess起動後に一度実行したら、クエリ作成等の操作は、ローカルDB(mdb)を対象とする場合と同じ様に値を指定できるものなのでしょうか。 手元にADOというものについての本がなく、また今は自宅なのでAccessが使えない状態です。素人相手で本当に申し訳ありませんが、アドバイス頂けると助かります。宜しくお願いします…。

その他の回答 (2)

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

>既に「ADOを使って~」というところでつまづいてしまいました "あとは" とは別の方法という事です。 リンクして使えば良いのでリンクではなくという場合はADOを使って接続します。 ADOはActiveX Data Objectsの略です。 Microsoftの提供するデータベースアクセスのためのソフトウェア部品。OLEDBをActiveXコントロールの形で使えるようにしたプログラミングインターフェースです。データベースにアクセスできるようになります。 接続はform_load時などに行いレコードセットをソースとしてフォームに使ったりします。 そうしないとレスポンスが悪くなります。 ADOを使った接続の仕方などはWeb上に色々ありますので参照してみてください。

noname#60992
noname#60992
回答No.2

アクセスでODBCのリンクテーブルを作ってしまえば、アクセスと同じように扱えます。 データの参照や、抽出に関してはテーブルロックに配慮できれば、そこまで問題はないと思います。 更新、削除などに関しては細心の注意が必要です。 データベースの構造を十分理解したうえで行ってください。

kb2006
質問者

お礼

16Augustさん、O_chanさん、ありがとうございました! Oracle側のDB定義をきちんと確認して、Access側の設定を進めて行きたいと思います。 とりあえずとても安心しました。本当にありがとうございました!!

関連するQ&A

専門家に質問してみよう