サブフォームの外部にあるボタンを使用して操作されるサブフォームにクエリ結果があります。フォームのMS Access、新しいレコードで2つのレコードが作成されることがあります
画像:かなりの
すべてのボタン「レコードの追加」は、INSERT文を実行し、フォーム/クエリをリフレッシュしているん。 INSERT文には、前の行のwhatsとほとんど同じ情報が含まれています。 DLA_HOLDER_ID、DLA_TYPE_IDなどの情報は変更されません。エントリのほとんどのフィールドは空白のまま残り、DLA_CREATION_DATE
とRECORD_DATE
にそれぞれDate()
とTime()
を使用します。
行が追加されると、TEMP_STATUSを一旦キャンセルUPDATEステートメントはTEMP_STATUS
'N'
とクエリ結果を満たす行を削除実行されている場合、それは'S'
なり、保存、'N'
あります。これはすべて完全に機能します。
私の問題は、時には「Add Record」を押すと2つの行が挿入されます。それは、時間の5%〜10%しか起こらず、ランダムに発生します。 2つの行が追加されると、RECORD_TIME
が1秒離れていることを除いて全く同じです。つまり、row1 = 2:06:24 PM、row2 = 2:06:25 PMです。
これを修正する方法はありますか?私がこのようなことが起こったと考えることができる唯一の方法は、INSERTクエリを処理するのに偶然にかかった時間です。Time()
の値は、2:06:24から2:06:25に変わり、両方を挿入するのではなく、 (はい、私はそれがいけない作業そのように理解し、それは私が考えることができるすべてです。)ここで
EDIT は「レコードを追加」ボタンのコードです。 「レコードの追加」ボタンを再び有効にするには、「レコードの保存」ボタンまたは「キャンセル」ボタンのいずれかを押す必要があるため、ボタンを2回押すことはできません。
Private Sub cmdNewRec_Click()
insert_query = "INSERT INTO DLA_RELATIONSHIP (DLA_HOLDER_ID, DLA_TYPE_ID, DLA_LOCATION_ID, DLA_PARAMETER_ID, DLA_TITLE, DLA_CREATION_DATE, TEMP_STATUS) SELECT DLA_HOLDER_ID, DLA_TYPE_ID, DLA_LOCATION_ID, DLA_PARAMETER_ID, DLA_TITLE, DLA_CREATION_DATE, ('N') AS TEMP_STATUS FROM DLA_RELATIONSHIP WHERE (((DLA_HOLDER_ID)= txt1) And ((DLA_TYPE_ID)= txt2) And ((DLA_LOCATION_ID)=txt6) and ((DLA_PARAMETER_ID)= txt3) And ((DLA_TITLE)=txt4) And ((DLA_CREATION_DATE)=txt5))"
DoCmd.SetWarnings False
DoCmd.RunSQL insert_query
DoCmd.SetWarnings True
Me.Form.refresh
lblNotice1.Caption = "New record present with unsaved changes"
cmdNewRec.Enabled = False
cmdSave.Enabled = True
cmdCancel.Enabled = True
End Sub
繰り返しますが、それは(再びそれを考えることに私をリードすると、何らかの形でこれにで遊ぶ時間()関数で)完全にランダムで発生に注意してください。
また、揺れやすいマウスボタンがあり、2回クリックする可能性があります。 – cha
...はい、この場合ではありません。 – Dre24
原因を見つけるには、あなたの投稿を編集し、 "レコードを追加"コードを追加する必要があります。しかし、 "N"レコードがすでに存在する場合は、その手続きの始めに簡単にチェックすることができます。 – Andre