ビューをレコードソースとして作成しました。このビューは1つのテーブルと別のビューを2つのテーブルにまとめました。 チェックボックスをクリックすると、レコードチェックボックスが更新されるかどうかをチェックするアクセスコードで検証が行われます。チェックされていない場合、チェックボックスの値は0 /偽に戻されます。複数テーブルビューのフォームの更新時に書込み競合が発生しました。レコードとして
まず、チェックボックスのclick event
でこれを実行し、検証しないときにcheckbox value = false
を設定しようとしました。しかし、これはwrite conflict
となります。次に、私はそれの前にMe.Dirty = false
で試してみましたが、これも助けになりません(まだ書き込み競合を取得しています)。 checkbox.undo
でも同じ結果が得られます。
before update
でこれを行うと思いましたが、単純なcancel=true
を使用すると、フォーカスが変更されず(同じレコードにフォーカスが移り、決してそこから移動することはありません)。
通常、書き込み競合メッセージを無視するために使用するものですが、メインテーブルのタイムスタンプが含まれていますが、これは動作しません(おそらくビューが複数テーブルベースなので)。
いくつかの追加情報:
- ビューは、SQLサーバーに作成され、ビューの
- 主キーにアクセスするためにリンクされているが(それが編集可能である)CREATE UNIQUE INDEXを実行することで設定されていますステートメント
どのように私はこれを動作させることができますか?
* "チェックボックスの値をfalseに設定する" *これはUPDATE SQLで行いましたか?代わりにフォームのチェックボックスの値を設定すると、レコードが書き込まれていないため、書き込み競合が発生してはいけません。 – Andre
SQL Serverは1と0を使用しますが、MS Accessは-1と0を使用します。これを行うためのコードはありますか? – Fionnuala
@Fionnualaチェックボックスコントロールをtrue/falseに直接設定する場合、背後のcontrolsourceはSQL Serverのビットフィールドであり、アクセスは変換自体を(正しく)実行するので問題ありません。 – Nicolas