MsgBox函数不起作用

时间:2015-03-12 20:17:29

标签: ms-access access-vba

当我只有MsgBox函数“Quest”时,我有一个正常工作的子程序。该程序的最终结果是发送包含三个文本和附件之一的电子邮件。我现在添加了另一个MsgBox:“FirstTime”。我的问题是该过程不会询问函数中的任何一个问题,而是表现为假设“FirstTime”的答案是6.如果我将第6行更改为“If FirstTime = 7”,那么电子邮件没有文本一点都不我尝试了一些尝试解决方法 - 将位分离成单独的函数并使用Select Case,但无济于事 - 出现同样的问题。我可以构建自己的函数(内置三个问题,但我更喜欢坚持使用MsgBox)这是我程序的相关部分:

Dim Quest As Integer
Dim FirstTime As Integer

FirstTime = MsgBox("Send as a first-timer?", vbQuestion + vbYesNo, "Issue Forms")

If FirstTime = 6 Then
    Txt = Txt3
Else
    If IsNull(Forms!frmClient.RulesAgreed) Then
        Quest = MsgBox("Do you want to send the SLA?", vbQuestion + vbDefaultButton1 + vbYesNo, "Service Level Agreement")
        If Quest = 6 Then
            Txt = Txt2
            Forms!frmClient.SLASent = Date
        Else
            Txt = Txt1
        End If
    End If
End If

3 个答案:

答案 0 :(得分:1)

我在另一个程序中找到了一个SendKeys程序,该程序与我发布的程序相关联。我相信这些都应该避免。删除它后,我的代码现在可以正常工作了。如果我发布了所有相关的代码(很多空间 - 这就是为什么我没有)我确信有人会把他们的手指放在现场。我现在要删除所有SendKeys - 我会在任何时候处理任何probs。

答案 1 :(得分:0)

你的Else-If可能是错的。并使用常量:

Dim Quest As vbMsgBoxResult
Dim FirstTime As vbMsgBoxResult

FirstTime = MsgBox("Send as a first-timer?", vbQuestion + vbYesNo, "Issue Forms")

If FirstTime = vbYes Then
    Txt = Txt3
ElseIf IsNull(Forms!frmClient.RulesAgreed) Then
    Quest = MsgBox("Do you want to send the SLA?", vbQuestion + vbDefaultButton1 + vbYesNo, "Service Level Agreement")
    If Quest = vbYes Then
        Txt = Txt2
        Forms!frmClient.SLASent = Date
    Else
        Txt = Txt1
    End If
Else
    ' User answered No to firsttime and RulesAgreed is not null.
End If

结束如果

答案 2 :(得分:-4)