Private Sub Command34_Click()
If Name.Text = [Table1.Name] and Address.Text = [Table1.Address] Then
MsgBox "Match"
Else
MsgBox "No Match"
End Sub
我正在尝试关闭我的关闭按钮以查看所有字段是否与他们开始时的值相匹配,如果他们这样做则会关闭,如果他们不这样做则会提示他们保存或放弃更改。
我有完整的关闭按钮,但是我似乎无法将表单的字段与表格进行比较。
非常感谢任何帮助。提前谢谢。
更新:我无法呼叫表格中的字段。我之前没有从VBA调用过表字段,因此我确信我缺少声明的内容
答案 0 :(得分:2)
有一个名为'Dirty'的属性,当进行更改但尚未保存时,Access会将其设置为TRUE。
以下代码适合您:
Private Sub cmdClose_Click()
If Form.Dirty Then 'check if changes have been made
Select Case MsgBox("Save changes?", vbQuestion + vbYesNoCancel)
Case vbYes
DoCmd.Close acForm, Me.Name
Case vbNo
Form.Undo
DoCmd.Close acForm, Me.Name
Case vbCancel
'do nothing
End Select
End If
End Sub
答案 1 :(得分:0)
对于我的工作单系统,如果用户需要更新已在表中创建的现有故障单,我会创建一个包含该行的记录集,并将表单字段与现有行进行比较。
Dim myR as Recordset
Dim strSQL as String
strSQL = "Select * From Work_Tickets Where ID = '" & Ticket_Number & "'"
Set myR = db.OpenRecordset(strSQL, OpenDyanset)
If me.status = myR![Status] then
msgbox "No changes have been made"
Else
myR.Edit
myR![Status] = me.status
myR.Update
msgbox "A change has been made"
End if
Set myR = Nothing