• 締切済み

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データベースの表の値を更新したいと思っているのですが、 解決方法をご存知の方がいらっしゃいましたら、教えていただけないでしょうか?

みんなの回答

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

外部キー制約に違反していないでしょうか? また、一意キーの無いリンクテーブルには 更新できない場合があります。 尚、リンクテーブルだから更新できないという ルールはありません。 Access2007が怪しいというなら、パススルー クエリを使う方法もあります。これはJetを 経由しないで、直接DBにSQLが渡ります。 ですから、Accessではなく、Oracleの文法で SQLを記述してください。

query_question
質問者

お礼

外部キーは使用しておらず、 Oracle側に一意キーを設定し、 リンクテーブルを設定する際に、 そのキーを指定してリンクテーブル作成は実施しています。 パススルークエリを確認してみます。 書き込み、ありがとうございます。

関連するQ&A

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

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

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

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

  • ODBCデータベースに対するリンクテーブル設定ができません

    こんにちは。 ORACLE DBをリンクテーブル設定の対象としたいのですが、うまくいきません。どなたかアドバイスをお願いします。 ・既に行った設定 OracleClient及びODBCドライバを使用するPCに導入し、コントロールパネルの管理ツールより、データソースの設定を行いました。 ・同機能から接続テストを行い、「成功」と出ました。 ・うまくいかない手順 (1)Accessにて新規データベースを作成し、「データベースウィンドウ」が開いている状態にします。 (2)メニューバー→外部データの取り込み→テーブルのリンクを実行します。 (3)「リンク」ウィンドウが表示され、「ファイルの種類」を「ODBCデータベース」に指定すると、強制的に「データベースウィンドウ」表示のみの画面に戻されます。 何故なのかがわかりません。どなたかアドバイスをどうかお願い致します。

  • Accessのリンクテーブルについて

    Access2000を使用しているのですが、SQLServerのDBをリンクしなければいけないのですが、ODBCを使用せずにリンクさせる方法はあるのでしょうか? またはモジュールでコードを記述してリンクテーブルを作成する方法でもかまわないのですが・・・。 作成したAccessを配布したPCにODBCを設定するのが面倒なのですが・・・。 なにかいい方法があるのか教えていただきたいです。

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

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

  • AccessとSqlServerのテーブルリンク

    Access2007とSqlServer2008を使用しています。 Accessで作成したテーブルを「データベースツール」-「データの移動」でSqlServerに移行してリンクする際、 (1)SqlServerに新規にデータベースを作成すると、リンクテーブルマネージャから見てもリンク先DBが正しく表示されますが、 (2)その後、その既存DBに同じAccess内の別のテーブルを、「データベースツール」-「データの移動」してリンクしたものは、リンクテーブルマネージャから見てもリンク先DBが ()となっており表示されていません。 ツールとしてSqlServer Management Studioを使っていますが、そこからでも(1)のテーブルは表示されていますが、(2)のテーブルは表示されません。 でもリンクはできているようなのです。 また、SqlServer Management Studioを使って、SqlServer内に新規テーブルを作成し、 それをAccessからリンクしようとしても、テーブルリンク一覧内に表示されない状態です。 (「外部データ」-「ODBCデータベース」…)にて SqlServerのファイルデータソースを表示しています) (2)のテーブルはSqlServer Management Studioから見ることができないため、更新・削除もできず困っています。 DB、テーブル、リンク方法等、何か問題があるのでしょうか? よろしくお願いします。

  • 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の名前を同じものではなく、別の名前に変更した方が宜しいのでしょうか。 質問内容に不足な点がございましたら、内容を再度追加致します。 どうぞご教授宜しくお願いします。

  • Accessのテーブルのリンクについて

    Access2002で、異なるファイル間でテーブルをリンクして使用しています。 「A」データベースと「B」データベースがあり、 「A」データベースのテーブルを「B」データベースへリンクさせています。 「B」には「A」からリンクさせているテーブルと同一の形式のテーブルがあり、 普段は「B」所有のテーブルを使用しているのですが、「保存」ボタンクリック時に 「A」からリンクさせているテーブルに「B」の内容をコピーするマクロを作成したいのですが、 値の代入がうまく行きません。 どうすればデータをコピーできるでしょうか。

  • MS Accessの外部リンク先変更

    MS Accessの外部リンク先を一括で変更出来る方法を教えて下さい。 MS Access ver.2002 現在業務システムをMSaccessと連携させてデータを取っています。 業務システムのデータはSQLサーバーにあり、accessからODBCドライバ経由で外部リンクしています。 テーブルプロパティはこんなカンジ ODBC;DRIVER=SQL Server;SERVER=[サーバー名];APP=2007 Microsoft Office system;WSID=HP09;DATABASE=[データベース名];Trusted_Connection=Yes;TABLE=dbo.[テーブル名] 先週サーバーの入替えがあり、[サーバー名]が変更になったためODBCの構成を新サーバー名に変えたのですが、accessの外部リンクには反映されなかったので、いっこいっこリンクテーブルマネージャでこリンク先の変更をしました。 しかしサーバーに不具合でもあるのか、毎日のように業者が来てはサーバーをいじくり、その度にリンク先が元のサーバー名に戻ってしまいます。 テーブルが複数あるので毎日リンクテーブルマネージャで変更するのはしんどいです。 良い方法ありませんか?

  • SQLサーバーのテーブルに対してアクセスで更新クエリを行ないたい

    こんばんは。 ・vista ・アクセス2003 ・SQL Server 2005 です。 SQL ServerからテーブルをMDBへリンクしているのですが そのテーブルに対し、アクセス側で更新クエリを実行しようとすると 実行時エラー '3157': ODBC--リンク テーブル'テーブル名'での更新に失敗しました。 [Microsoft][ODBC SQL Server Driver]時間切れになりました。(#0) と言うエラーになり、更新クエリができません。 どうすればアクセスでSQLサーバーのテーブルに対して更新クエリを行えるのでしょうか? よろしくお願いします。