1

a_formテーブルにデータバインディングするフォーミュラがありますmy_table。ユーザーがボタンをクリックした場合、フィールドtxt_mytextをから"Hello"に更新したい"Hello World!"

書き込みの競合を発生させずにこのフィールドを更新するにはどうすればよいですか。

This record has been changed by another user since you started editing it. If you save the       record, you will overwrite the changes the other user made. Copying the changed to the clipboard will let you look at the values the other user entered, and then paste your changes back in if you decide to make changes.

私は次の方法を試しました:

  • SQLステートメントの使用(データバインディングとSQLステートメントを使用してテーブルにアクセスするため、このメソッドを使用して書き込みの競合が発生していることは明らかです。
  • を使用しa_form!txt_mytext = "Hello World!"ます。このメソッドを使用して書き込みの競合が発生する理由はわかりません。

3番目のメソッドはありますか、それとも書き込みの競合を回避するために、、 ...をMe!Requery呼び出すMe!Refresh必要がありますか?Me!Dirty

私のコードfrm_a_formは次のとおりです。

Private Sub btn_calculate_Click()
         Forms!a_form!txt_mytext = "Hello World!"
End Sub
4

2 に答える 2

1

書き込み競合が発生した理由がわかりません。ただし、あなた自身の回答では、これが機能すると報告しました:

Forms!a_form!txt_mytext = "Hello World!"

それが機能するので、そのフォームのコマンド ボタンのクリック イベントから同じことを行います。

Private Sub btn_calculate_Click()
    Me!txt_mytext = "Hello World!"
End Sub

その変更をすぐに保存する場合は、これをクリック イベント プロシージャに追加します。

Me.Dirty = False
于 2012-12-20T15:46:28.343 に答える
0

これはうまくいくようです:

Forms!a_form!txt_mytext = "Hello World!"
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

私はこれをランダムに見つけました

この解決策を説明するか、独自の回答を追加してください。

于 2012-12-20T10:50:25.963 に答える