3

インフラストラクチャが原因で、やや独特の問題が発生しました。調査を実行し、Accessデータベースに情報を入力している2つのオフラインタブレットがあります。これらのタブレットには、データベースのフロントエンドとバックエンドの独自のコピーがあります。

毎日の終わりに、バックエンドのマスターコピー(オフィスのコンピューター上)を2つのタブレットデータベースのそれぞれの値で更新する必要があります。次に、このマスターDBが各タブレットにアップロードされ、不完全なバージョンが置き換えられ、翌日オフになります。

私はこれまでこの種のマージを行ったことがなく、どこから始めればよいのかよくわかりません。基本的に、次のようなクエリが必要です。

  • マスターDBの現在の値を削除します
  • Tablet1の値をtablet2の値とマージしてマスターDBに追加します

タブレットには前日からの値も含まれるため、マスターDBの現在の値を削除できます(参照などで必要になる場合があります)。基本的に、タブレットには常にが含まれますentire database + today's survey。それ+ today's surveyはタブレットごとに異なるだけです。

できますか?KeyIDを使用して関係が確立されているため、IDフィールドを保持するにはどうすればよいですか?

私は必要ですMERGEが、MSAccessで動作するかどうかについてのドキュメントは見つかりませんでした...MSは標準で遊んでいるようですが、彼らは喜んでいます。または、MSA2010がMergeをサポートするように更新されていない可能性がありますか?

4

1 に答える 1

1

バンドエイドソリューションとして機能する回避策を見つけました。最初に既存のマスターテーブルを空にします。次に、以下を使用します。

SELECT * FROM myTable IN "LocationToTablet1/backend_tablet1.mdb"
UNION
SELECT * FROM myTable IN "LocationToTablet2/backend_tablet2.mdb"

そのクエリに「myQuery」という名前を付けます。それで

INSERT INTO myTable IN "LocationToOffice/master_backend.mdb"
SELECT * FROM [myQuery]

ただし、同じ質問がある人にとっては、SharePointと統合するHansUpのソリューションは良い考えのように思えます(質問のコメントを参照)。エンドユーザーの介入は必要ありませんが、タブレットがオフィスに戻ったときにこれらのクエリを手動で呼び出す必要があります。

于 2012-07-09T15:29:17.560 に答える