リンクにアクセスDB"のレコードが変更されている他のユーザー"
-
13-09-2019 - |
質問
私をマルチユーザのアクセス2000年DBへのリンクMSSQL2000データベースの書いていない。
データベースのデザインによって作成されたものであり、だいています。
のお客様の形式があ'Customer_IDフィールドがデフォルトのニーズに次のお客さまの会社ID、ユーザのオプションのこの選択は、既存のお客様のIDです。
現在、Customer_ID分野ではない、PKのお客様。続きを読ませて下さい。
お客様の電話回るジョブをキューに投入すると、テーブルかつ記録は、それぞれ同じお客様の情報は、同じお客様のIDです。
ユーザが新しく作成しチケットのアクセスはクルックアップのために利用するお客様のIDを充填することができるのです。なレコードを保存します。ある問題につユーザーの編集をしていてもトラックのそれぞれの仕事のないように惑わるお客様のIDです。
していきたいなと思っていますの変更"新記録"ボタンで保存するチケットの直後の新規作成します。
問題は、私が試験の変更にとって"このレコードに変更して別のユーザーされてから編集することが出来きます。
たいしたもんじゃない他のユーザーのDBです。"その他のユーザー"が、おそらく私の強制保存します。
そのアイデア?
解決
それは少しのデータ型を含むフィールドを持っていますSQL Server 2000で、あなたのリンクテーブルを見てみましょうか?あなたはのデフォルト値を持っていないのビットフィールドを持っている場合は、アクセスがあなたのリンクテーブルのシナリオでは、このエラーメッセージが表示されます。
これはあなたのケースでは間違っているのですが、私はアクセス2007データベースで同じことを経験していないデフォルト値をビットフィールドに問題を追跡してきたものではないかもしれません。
他のヒント
私は前にこの振る舞いを見ていると、これは私のためにそれを固定します:
(ちょうどこのフィールドを追加し、リンクテーブルを更新します。あなたはあらゆる種類のデータでは、このフィールドを入力する必要はありません)テーブルにタイムスタンプフィールドを追加してみます。
の誤りいただけます(通常の場合:
- で編集状態の形成が汚れて、編集保存されません),
や
- でコードを使用するDAOはADOに実行SQLの更新と同じです。
ジェット、二つの"ユーザ"で二つの異なる編集。配下のテーブルが更新された、SQL更新、データのバッファの現してください。
通常の溶液を保存前にSQL更新
If Me.Dirty Then
Me.Dirty = False
End If
[run your SQL update here]
が使用している場合は、形の編集記録をすべきなのすべての更新により頼らSQLいます。
の状況について説明していただけまを生成しながら自分の配列べきファッション:
ユーザーの新規記録ボタンを押します。
calc次のシーケンス値は、大切に保管してくださ可変となります。
insert新しい記録とそのシークエンス値のSQLをサポートしていません。
4a.場合はフォームは、すべてのデーのテーブル、requeryのデータを編集フォームを想定した新しい録音ボタンの形がユーザーが編集データの利用をブックマークナビへ移動し、新しいレコードの配列さい値に格納された可変ステップ2に進みます。
4b.が形 ない 行きは、すべてのデータに対してべきではない場合でもデータベース)のように変更しrecordsourceの形式への負荷の記録を伸ばしていきました。
他のインタビューを受けたことがあるのを避けるSQLのINSERT文とrequery(またはリセットのrecordsource)、単に新しい記録の形で既存設定の配列の分野に新たな価値、直ちにレコードを保存します。
のポイントするマルチユーザー環境での記録を保存することだけど、シーケンス値を割り当てできるだに僕が撮影中の画像がそうすると、同じシーケンス値は他のユーザーであるだけでいます。
これは私がGoogleからの全体で来ている古い質問ですので、私は私の答えを提出します。
ODBCドライバでは、行のバージョン管理をオンにしてください。テーブルはAccessですでにある場合は、ソーステーブルに、再リンクを削除する必要があります。
あなたはアクセスがあなたのテーブルと呼ばれるxmin
に列を追加する必要があるため、行のバージョン管理を有効にしている場合伝えることができる必要があります。
私は、ユーザーが自分の価値を持つ新しいCUSTOMER_IDをオーバーライドしているかどうかを追跡します。彼らがいない場合は、あなたのアプリが再び右に保存し、ちょうど自己インクリメントする前に、重複をチェックすることができるはず、とユーザーがデフォルトを取って気にしませんでした。たぶん、あなたは自動的に別の値を選択しなければならなかったユーザーにも、いくつかの指標ます。
私も同じ問題を抱えていました。私は春のMVCを使用してテーブルに更新し、冬眠しようとしていました。私の場合に表のバージョン列は、値を含む1以上(すなわち3)私の更新クエリ内の更新情報は、バージョン値1を有していたが
私たちの問題は、アクセスフロントエンドは、MSSQLビット(0/1)フィールドにint型(はい/いいえ)を保存しようとしていたということでした。フィールドをintにMSSQLデータベースを変更すると、魔法のように働きました。
私はこのエラーを生成し、別の状況accrossに来ました。 MySQLのテーブルでは、私は、最初はデフォルト値が「0000-00-00」を持っていた2つの日付の列を持っていました。その後は、デフォルトのNULLに変更はなく、多くの行が「0000-00-00」の値を維持しました。私は手動でエラーを停止するためにNULLに値をリセットする必要がありました。
これは、他のHTHの誰か、エラーをtrigeringたかを把握するために多くの時間を要します。
このエラーは、スローすることができます。バック日時デフォルトのCURRENT_TIMESTAMPにデータ型を変更すると、エラーを停止します。