次の方法で共有

Access 2010 同期の競合エラーの回避方法

Anonymous
2013-12-26T06:25:29+00:00

会社でWinXP、Access2000で動かしているシステムがあり、レプリケーション機能を使っています。

現行のシステムがAccess2000ともう一つ別のソフトで動いているため、XPのサポート切れの問題もあり、Access2000のシステムと別のソフトのシステムをAccess2010に一本化しリリースすることになりました。

Access2010に一本化し、PC単体の動作で大きな問題がないことを確認したので、レプリカの作成をしてテストを開始したところ、競合エラーが発生し、「回避しますか。」とのメッセージが出るので「はい」を押したのですが何の処理もされず、Accessを開くたびに同じメッセージが表示されます。

後でMicrosoftのサイト調べたところ、回避の方法やどこが競合しているのか等のビューアーが2010では機能として組み込まれていないことがわかりました。

http://office.microsoft.com/ja-jp/access-help/ha101806473.aspx

ただ、サポートページでカスタムで競合回避モジュールを作成すれば使用できるとの記述でしたので、説明されている通りにモジュールを作成したのですが、「MSysErrorテーブルが見つかりません」とエラーメッセージが表示され、競合の回避のためのビューアーが出てきません。

記事も、ただ英語を翻訳機で翻訳しただけの内容ですし、「この件に関してはサポートしていないので今後情報が更新されることもない」と記載されていました。

http://support.microsoft.com/kb/158930

…カスタム競合回避モジュールの作成ページ

その後、海外のマイクロソフトコミュニティで同じ内容の質問があったので、自力で翻訳し、モジュールを修正したのですが、競合内容(競合の理由等)を表示することまではできたのですが、肝心な回避ができません。

http://social.technet.microsoft.com/Forums/office/en-US/a84500c1-6203-47b1-9fcf-75d90de29030/msyserrors-missing?forum=officeitproprevious

------上記サイトを自力で翻訳したもの------

質問 - spi_shane

2011年6月14日火曜日午後12時52分

    会社でAccessデータベースを使用しています。

    最近Office 2010に移行したのですが、Replication Conflict Viewerが機能から取り除かれたことを知りました。

    http://technet.microsoft.com/en-us/library/cc179181.aspx#BKMK_WhatsRemoved

    …2010の変更機能一覧が掲載されているページ

    Sharepointを使用できるまでは、下記リンク先で提供されている方法で以前のものを使用しようと考えています。

    http://support.microsoft.com/kb/158930

    …カスタム競合回避モジュールの作成ページ

    しかし、このスクリプトを使用すると、以下のエラーメッセージが表示されてしまいます。

    -----Microsoft Accessデータベースエンジンは、テーブルかクエリである 'MSysErrors' を見つけられません。

    それが存在するか、名前が正しくつづられか確認してください。-----

    この問題に関してどこにも参考になるものがなく、どうしたらよいのか分かりません。

    MSysErrorテーブルを再度追加する方法はありますか?

回答 - Sharon M

2011年6月17日金曜日午後4時11分

    この記事は、競合を含むテーブルが「MSysErrors」と呼ばれていたAccess95の時に書かれました。

    現在では、「MSysConflicts」と呼ばれています。

    すべての「MSysErrors」を「MSysConflicts」に変更してみてください。

質問 - spi_shane

2011年6月21日火曜日午後7時26分

    シャロン、ありがとう。

    この問題はすぐに解決しましたが、まだこのスクリプト(タイプ不一致)による問題があるようです。

    これらの記事はこの特定の問題について更新されている記事なのでしょうか?

    Office 2010は直接この古い記事を指し示します。明らかに古いです。

回答 - Sharon M

2011年6月24日金曜日午後3時35分

    残念ながら、更新された記事はありません。

    私は記事とは異なるプロシージャでテストしました。

    型の不一致エラーは出ませんでしたよ。

    「MSysErrors」から「MsysConflicts」に変更する必要があること以外で、遭遇した唯一の問題は「ViewSyncError」プロシージャでした。

    「MsysConflicts」テーブル内のフィールド名が変更されています。

    [TableGuid]は現在は[BaseTableGuid]で、[RowGuid]は現在[BaseRowGuid]で、[Operation]は存在せず、[ReasonText]は現在は[Reason]です。

    私がそれらの変更をしたら、コードはエラーなしで動作しました。

    もしシステムオブジェクトを見られるのであれば(File\Options\Current Database\Navigation Options)、

    「MsysConflicts」テーブルを見て、フィールド名、データタイプ等を確認することができます。


結局この質問者も解決できていないようです。

今までのAccess 2000で作成したVBA等を使いたかったので、Access2010でも、ファイル形式はmdbです。

この問題が解決されないと、いつまでも新しいシステムがリリースできず、非常に焦りを感じています。

現在のまま競合解決をする方法、また、別の方法で簡単に競合の回避ができるようであれば教えていただきたいです。

皆さんのお力を貸してください。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

3 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2014-01-10T00:17:18+00:00

    ChocoLapin さん、こんにちは。

    状況などの詳しい書き込み、ありがとうございます。

    なるほど。回避モジュールだけで対策が可能な内容ではなかったんですね。。。

    サポート窓口を利用することで今後の方向性が決まったようなので、安心しました。

    また何かありましたら、ぜひ当フォーラムをご利用ください。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2014-01-08T01:03:24+00:00

    楠部 啓 さん、返信ありがとうございます。

    わざと競合を起こすために、マスタの同じレコードを2つのレプリカで編集します。

    そのあと、メインのPCで同期をとりました。

    競合の理由は、メッセージボックスで以下のように表示されます。


    Table ID:{guid{89EBF944-3D2A-4ABE-88EC-F0B0B5EA0EDE}}

    Record ID:{guid{A82EE47E-2FBE-4E08-9F9C-40E484D66535}}

    Failed Becouse:一意キー違反。このレコードのキー値は、他のレコードのキー

    値と同じです。キーには、一意な値しか使用できません。この競合レコードまた

    は優先するレコードのキー値を変更してこのレコードを再発行するか、この競合

    レコードを削除してください。


    と表示されます。

    同様の内容(Table IDとRecord IDの番号が若干違う)が4~5回メッセージボックスで表示されます。

    中身が理解できたところで、回避ができません。

    困り果て、Microsoftサポートに問い合わせました。

    やはり、回避モジュールといっても、回避できないことがわかりました。また、回避するために手動でテーブルを操作していかなくてはならないことも分かりました。

    競合が起こるたびに細かい部分まで手動で削除しないといけないので間違えてしまうリスクもあります。

    代替案として「データベースの分割」機能を紹介していただきました。

    他に術がないので、この「データベースの分割」機能を利用してシステムリリースしようと、方向転換しました。

    この質問を読んでいただいたのに、申し訳ありません。お手数おかけしました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2013-12-27T02:50:13+00:00

    ChocoLapin さん、こんにちは。

    投稿ありがとうございます。

    Access 2010 でレプリケーション機能 (mdb ファイル) を使った際に発生する競合エラーの回避方法についての質問でいいですか?

    競合エラー回避用のモジュールを作成して、競合の理由などを表示するところまではできているんですよね。

    よかったら、競合の理由についても書き込んでみてはどうでしょうか。

    そうすると何かコメントが寄せられるかもしれませんよ。

    書き込み、お待ちしています。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません