|
Private Sub Form_Dirty(Cancel As Integer)
Dim sql As String
On Error Resume Next
sql = "INSERT INTO 表2 ( 日期, 编号, 名称, 数量 )" & _
"SELECT 表1.日期, 表1.编号, 表1.名称, 表1.数量" & _
" FROM 表1 " & _
" WHERE (((表1.编号)='" & 编号 & "'));"
DoCmd.RunSQL sql
If Err() <> 0 Then
sql = "UPDATE 表2 SET 表2.日期 = #" & 日期 & "#, 表2.名称 = '" & 名称 & "', 表2.数量 = " & 数量 & _
" WHERE (((表2.编号)=" & 编号 & "));"
DoCmd.RunSQL sql
End If
End Sub
在脏数据事件中写上面的代码,注意:我是以编号为关键字的,把数据的类型改为了数据.程序运行后,在你编辑数据时将自动保存原来的数据到表2,但在关闭窗体前的再编辑,数据不会再次保存,除非关闭窗体后再打开编辑. |
|