检查表字段对表字段访问2007

时间:2013-06-14 14:15:59

标签: sql vba ms-access-2007

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

End Sub

我正在尝试关闭我的关闭按钮以查看所有字段是否与他们开始时的值相匹配,如果他们这样做则会关闭,如果他们不这样做则会提示他们保存或放弃更改。

我有完整的关闭按钮,但是我似乎无法将表单的字段与表格进行比较。

非常感谢任何帮助。提前谢谢。

更新:我无法呼叫表格中的字段。我之前没有从VBA调用过表字段,因此我确信我缺少声明的内容

2 个答案:

答案 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