使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
MukkuMukuです。
Access 2003 (JET) →Access 2007以降(ACE)
Oracle10g → Oracle11g
と複数の要素で環境が変わっているのでなんとも判断しがたいですが
ODBCドライバあたりが原因かもとこの手のトラブルでは思うことがあります。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
Windows7でAccess2013を導入しました。更新クエリのロック違反エラーについて教えてください。
ODBCでリンクしたテーブルに対し「更新クエリ」で一括更新すると、「nn件のレコードでロック違反」のエラーが出て更新できません。
ODBCドライバーは、Oracleの「OraClient11g_home1 バージョン11.02.00.01 SQORA32.DLL です。
なかなか解決できません。ご支援をよろしくお願いします。
使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
MukkuMukuです。
Access 2003 (JET) →Access 2007以降(ACE)
Oracle10g → Oracle11g
と複数の要素で環境が変わっているのでなんとも判断しがたいですが
ODBCドライバあたりが原因かもとこの手のトラブルでは思うことがあります。
Windows7 Pro(32bit)にAccess2013(32bit)で
OraClient11g_home1 バージョン11.02.00.01 の環境で
一括更新クエリー実行すると”更新クエリですべてのレコードを更新できません。"の
エラーメッセージが出ました。実際は先頭の1レコードのみ更新されていた!
オラクルの最新ドライバーバージョンか 11.02.00.04 にアップしたら
解決しました。
オラクルは同じようなトラブルを繰り返しているようですね
参考になればとアップしました。
MukkuMukuさん
Jiruパパです。
ご支援ありがとうございます。解決しました。
めげそうになっていたところでしたが、気を取り直してODBCドライバーを探しまくっていたら
偶然でしたがダウンロードサイトに行き当たりました。
ODBCドライバーソフトのバージョン10.02.00.03 というのがあり(現在は11.02.00.01)
これをダウンロード、導入したところOKになりました。
更新クエリでテーブルの一括更新が正常終了しました。
実は一括削除も同様エラーが出ていましたが、これも解決しました。
大変助かりました。
ありがとうございました。
楠部 様
ご返信ありがとうございます。Jiruパパです。
教えていただいたサポートページをよく勉強してみます。
また、状況としては次の様になります。
「更新クエリーですべてのレコードを更新できません
0個のフィールドで型変換エラー、0件のレコードでキー違反、18件のレコードでロック違反、
0件のレコードで入力規則違反が発生したためレコードを更新できませんでした。」
2) リンクテーブルの作成方法
a. 「管理ツール」→「データソースODBC」→「システムDSN」画面で追加ボタン→「セットアップするデータソースのドライバー選択」画面で、
・ドライバ"OracleClient11g_home1”を選択、
・データソース名に”TEST”を入力、TNSサービス名、ユーザIDに規定の値を入力
b. Access2013を起動してデータベースを新規作成→「外部データ」→「ODBCデータベース」→「外部データの取り込み-ODBCデータベース」の画面で、次の項を選択
・"リンクテーブルを作成してソースデータにリンクする"
→「データソース選択」画面で→「コンピュータデータソース」に上記作成のデータソース名"TEST"を選択、OK
→「Oracle ODBCドライブ接続」画面が開くので、サービス名、ユーザ名、パスワードを入力
→「テーブルのリンク」画面が開くのでリンクするテーブルを選択
3) 更新クエリの実行手順
・「作成」→「クエリデザイン」→画面で更新するテーブルを選択→「選択クエリ」を指定→テーブルの「フィールドA」に抽出条件 "<20" を入力して「実行」
・19件のレコードが抽出、表示される
→「デザインビュー表示」をクリックして、デザインビューを表示→「更新」クエリを指定
・更新するフィールドの「レコードの更新」に ”0” を入力
・抽出条件は同じ値 "<20"
→「実行」をクリック→”19件のレコードが更新されます”のダイアログが表示され、Yをクリック
ここで、ロック違反のエラーメッセージが出る
4) Access ファイルの形式は、"Access2007~2013"です
Oracleデータベースは変更ありません。
これまでは、WindowsXP、Access2003、OracleClient10g、で問題なく使用できていました。
今回、Windows7、Accsee2013、OracleClient11g、にグレードアップしてからの問題です。
大変長くなり恐縮ですが、よろしくお願いいたします。
Jiruパパ さん、こんにちは。投稿ありがとうございます。
Access 2013 でリンクテーブルのレコードを更新クエリで更新する際に発生するエラーについての質問ですね。
少し古い情報とはなるのですが、クエリでレコードを更新する時に発生するエラーのトラブルシューティングを書いたサポートページがあるので、あてはまる内容がないか確認しておくのがよいと思います。
・ Access クエリや Access フォームでデータを更新すると発生するエラーをトラブルシューティングする方法
より詳しい状況がわかるとコメントが寄せられやすくなるので、以下についても書き込んでください。
・ エラーメッセージの詳細 (表示されるエラーメッセージをそのまま書いてください)
・ リンクテーブルの作成手順、方法
・ 更新クエリの実行手順
・ Access ファイルの形式
・ Access 2010 など、以前のバージョンの Access では起こらなかったエラーですか?
書き込み、お待ちしています。