当我只有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
答案 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)
msgbox是老派。请改用messagebox.show
https://msdn.microsoft.com/en-us/library/system.windows.forms.messagebox.show%28v=vs.110%29.aspx