0
Private Sub Command34_Click()
    If Name.Text = [Table1.Name] and Address.Text = [Table1.Address] Then
        MsgBox "Match"
    Else
        MsgBox "No Match"

End Sub

我试图让我的关闭按钮检查所有字段是否与它们开始时的值匹配,如果它们匹配,它将关闭,如果不匹配,它将提示它们保存或放弃更改。

我有整个关闭按钮工作但是我似乎无法让表单的字段与表格进行比较。

对此的任何帮助将不胜感激。提前致谢。

更新:我无法调用表中的字段。我以前没有从 VBA 调用表字段,所以我确定我错过了声明的东西

4

2 回答 2

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
于 2013-06-16T12:17:31.823 回答
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
于 2013-06-16T12:42:57.700 回答