2017-09-12 5 views
0

私は1人のユーザーにのみ仕事でデータベースを実行しているよ、と個々のラジオボタンをクリックしたときに、私は以下のコードを実行するたびに、それは私に、データがされているメッセージアクセスDB VBAデータ競合

を与えています変更別のユーザーがこのレコードを編集した、あなたの変更を保存しようとする前に は、変更を保存しました。 レコードを再編集します。

このメッセージは、ボタンをもう一度クリックした後にアップします。 3回目にクリックすると値が変更されます。以前の記事からケン・ホワイトへ

Private Sub radioNECC10000_Click() 

Dim SQL As String 

DoCmd.SetWarnings False 
If (IsNull(Me.VendorNum.Value)) Then 
    MsgBox ("Please select a vendor!") 
Else 
    If (Me.radioNECC10000 = True) Then 
     SQL = "UPDATE tbleVendorRecord " & _ 
       "SET NECC_10000 = 10000 " & _ 
       "WHERE Vendor_ID = " & VendorNum & " " 
     DoCmd.RunSQL SQL 
    Else 
     SQL = "UPDATE tbleVendorRecord " & _ 
       "SET NECC_10000 = 0 " & _ 
       "WHERE Vendor_ID = " & VendorNum & " " 
     DoCmd.RunSQL SQL 
    End If 
End If 

End Sub 
+2

を私に提供しています。 CurrentDb.Executeを使うと、SetWarningsを気にする必要はありません。ラジオボタンは、フィールドにバインドされているオプショングループの一部ですか?ユーザーがレコードにデータを入力していて、同じレコードでUPDATEを実行しようとしていますか?テーブルへのユーザの編集を最初にコミットします。 – June7

+0

私はJune7に同意し、それはおそらく、コミットされていない変更で問題です。再クエリーも変更をコミットするので、複製の回答はちょうどうまくいくでしょうが(DoCmd.RunCommand acCmdSaveRecordのような)変更をコミットする明示的な方法があります –

+0

ユーザー入力はありません。ユーザーがラジオボタンをクリックすると、クエリは一度(オンまたはオフ)ラジオボタンの状態に応じてそれらの状況のいずれかを実行します。私は警告メッセージをオンに戻す、私はちょうどその行を入れて忘れて、リマインダーのおかげで!いいえ、それはどちらのフィールドにも縛られていません、それはそれの上にあるラベルの横にあるボタンです – Maldred

答えて

0

おかげで、彼らは私がを更新した後フィールド

Private Sub radioNECC10000_AfterUpdate() 
    Me.Form.Requery 
End Sub 
に以下のコードを追加してみました "The data has been changed" error when stepping from main form into sub form

が重複する可能性を発見しました

が働いていないと、もはやおそらく問題に関連していないが、手順の終わりにTrueに警告を設定する必要があり、そのメッセージ