MS Access应用程序 - 将命令按钮呈现为非活动状态,直到在表单中满足特定条件

时间:2014-08-22 22:00:24

标签: forms access-vba ms-access-2010 conditional-statements commandbutton

我在MS Access 2010中构建了一个应用程序,最终用户在其中发布语句。在表单1 上,最终用户输入语句总计和其他信息,然后单击命令按钮,该按钮附加表以开始跟踪最终用户条目并获取它们表格2

表单2 将填充在表单1 上输入的数据以及来自已连接表的其他数据。在此,用户按发票金额分配对帐单总计。名为余额检查的字段会计算发票金额表单1 表单总计之间的差异。表单1 。一旦余额检查等于 $ 0 ,他们就会点击名为完成声明命令按钮

我需要代码片段呈现完成语句命令按钮无效,直到余额检查= $ 0 。此外,即使余额检查= $ 0 ,我仍然希望当他们点击完成统计时出现一个弹出框,询问你确定你已经完成?是或否将允许他们取消操作。

以下是我目前用于此命令按钮的代码:


Private Sub Command160_Click()
On Error GoTo Err_Command160_Click

    Dim stDocName As String

    DoCmd.SetWarnings False
    DoCmd.Echo False

    stDocName = "BNK01-FillInfo"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    DoCmd.OpenReport "BNK01Report"
    Dim PdfFileNameToStore As String
    PdfFileNameToStore = "N:\Corp Office\Midwest Center\AR Department\Statement Processing\Invoice Reports\Sup01\BNK01\" & Forms.BNK01Nav.cboStore & "-" & Forms.BNK01Nav.txtReference & "-" & Forms.BNK01Nav.txtStmtAmt & "-BNK01" & ".pdf"
    DoCmd.OutputTo acOutputReport, "BNK01Report", acFormatPDF, PdfFileNameToStore, False
    stDocName = "BNK01-AddCredit"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    stDocName = "BNK01-AddDebit"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    stDocName = "BNK01-AddChargebacks"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    stDocName = "BNK01ClearChargebacks"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    stDocName = "BNK01-SaveEntry"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    stDocName = "BNK01-PostedNewStatement"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    stDocName = "BNK01EntryReport"
    DoCmd.OpenReport stDocName, acViewPreview
    stDocName = "BNK01Form"
    DoCmd.Close acForm, stDocName, acSaveYes


    DoCmd.SetWarnings True
    DoCmd.Echo True

Exit_command160_Click:
    Exit Sub

Err_Command160_Click:
    MsgBox Err.Description
    Resume Exit_command160_Click

End Sub

很抱歉,如果解释很长,但我对此很新,并希望确保我提供足够的信息。非常感谢您提供的任何帮助!!!!

1 个答案:

答案 0 :(得分:0)

试试这个:

Private Sub Balance_Check_AfterUpdate()
    If Me.Balance_Check.Value = "0" Then
        Me.Finish_Statement.Enabled = True
    End If
End Sub

Private Sub Finish_Statement_Click()
    If MsgBox("Are you sure you are finished?", vbDefaultButton1 + vbYesNo + vbQuestion, "Finished?") = vbYes Then
        'processing code goes here
    End If
End Sub

我不确定你的对象名称,但我想你会弄明白。
祝你好运。