重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Access(SQL Serverのテーブルをリンクテーブルとして使用)
でレコードを新規追加した直後に勝手に別のレコードに移動する現象が起きます。
親フォームに入力した後、サブフォームに入力しようとした際などにも勝手に移動してしまうので、まともに入力ができません。

・追加自体は正常にされている。
・フォームのレコードソース的にありえないレコードに移動することもある。(レコードソースが「SELECT * FROM Test WHERE Col1=1」なのに、勝手に移動して「Col1=1」以外のレコードが表示されたりする。
・SQL Server のマージレプリケーションをやめるとこの現象は起きない。
・SQL Server で新しいスナップショットを使って再同期させると必ずこの現象が発生するが、数日後には起きなくなる(全く起きなくなるかは不明。起きる確立はかなり減る)。
・特定のPCだけで起こるわけではない。

※マージレプリケーションの対象は、すべてのテーブルとビュー(インデックス付ビューも含む)です。

何かいい解決案はないでしょうか?
お願いいたします。

▼サーバー
OS:Windows Server 2003 R2 SP2 Enterprise
DB:SQL Server 2005 Standard SP2
▼クライアント
Access 2003

A 回答 (1件)

確認ですが、検索条件のキーとなっている


Col1という項目ですが、主キーでしょうか?

もし、Col1が主キーでない場合は、SQL Server側で
インデックスを貼ってみるといいかもしれません。

またその時に、1日に1回程度、インデックスの再構築する
Agentをしかけておくといいかもしれません。

ご参考になれば幸いです。
    • good
    • 0
この回答へのお礼

返事が遅くなってごめんなさい。
ご回答ありがとうございます。

特にWHERE条件を設定していない場合でも勝手に移動するフォームもあるんです。。。。(泣)
しかも、勝手に移動するのは一つのテーブルだけではありません。

正直いって、SQL SERVER のせいかAccessのせいかもわかりません。
ためしにAccess2007でやってみると、この超常現象は起きませんでした。
(時間がたって勝手に治ったのかは不明です。)

最終的には、すべてのビューをレプリケーションのアーティクルから外して、各サーバー毎にローカルのビューを作ったところ、解消された風(再同期してもOKでした)なので、それで様子をみています。

お礼日時:2007/09/07 23:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!