1、MsgBox(msg, vbYesNo)的应用,当你激活了一个弹出对话框时,指明了一个操作事项,要求你看到了提示后,必须做出一个选择,操作才能继续下去,指令才能最终是否激活,都在于你的选择,这种提示是非常重要的,否则就不会弹出要求您对下一步必须有一种选择。
A示例:Private Sub 确定3_Click()
Dim msg As String '定义MSG为String,否则出错
msg = "当前打开一个重要批处理窗口,如果您操作将会有损坏电脑上的文件" & vbCrLf & _
" " & vbCrLf & _
"如果您确定,请选择“是”!"& vbCrLf & _
" " & vbCrLf& _
"如果您操作错误,请选择“否”"
‘如果提示的信息太长,可用vbCrLf & _这种形式来转行。
‘用" " &vbCrLf & _来空一行,好让操作者能够看清提示信息
If MsgBox(msg, vbYesNo) =vbNo Then '选择NO就退出,否则就执行Else下面的命令
MsgBox "您选择了取消操作,您很明智!" ''判断后弹出提示信息
ExitSub
‘If MsgBox(msg, vbYesNo) = vbNo Then是一种语法,这里为什么在前面弹出消息后,为什么不把vbNo写成默认的vbYes呢?这是因为一个重要的选择就是不要选择,避免操作后带来不好的结果。
‘当然也可以在前面弹出消息后,要求选择操作,就可以把vbNo写成默认的vbYes,这样只要选择了“是”,就开始执行了。点了“否”就可以转到退出的语句了。
‘不管哪种方法,结果都一样,不一样的就是后面的指令该怎样去设计了,这是要思考的问题,也是设计的方式,根据设计目的来采用执行指令的先后顺序。
最后建议采用If MsgBox(msg, vbYesNo) = vbNo Then方式。
Else
MsgBox "您选择了操作,!也明白自己要做什么了" ''判断后弹出提示信息
DoCmd.OpenForm "执行批处理" '打开<执行批处理>窗体
EndIf
End Sub
效果如下:
点击“否”后,就直接退出了。为了讲解方便,我们用一个对话框来做示范,实际运用中,是不需要这个对话框的,而是直接退出了。
如果点击“是”后,就开始执行下面的指令了。
这里也为了讲解方便,我们用一个对话框来做示范,实际运用中,是不需要这个对话框的,而是执行指令了。
弹出的最终指令窗体。
B示例: Private Sub 报表1_Click()
On Error Resume Next '通俗来讲,是忽略错误处理(防错误处理),也就是有错误了,不弹出编码调试窗口,而进入到代码书写或者改写里面,从而防止别人修改。
DoCmd.OpenReport "网络数据",
acViewPreview, "", "", acNormal '执行打开报表预览
msg= "如果您选择打印机打印数据,请选择“是”!" & vbCrLf & _
" " & vbCrLf &_
"如果您只想预览数据,请选择“否”"
If MsgBox(msg, vbYesNo) = vbYes Then '通俗来讲,如果前面选择“是”,那么就往下执行。前面选择“否”,就不往下执行
Cancel = True '通俗来讲,表示选择正确(真),就直接执行下面的指令,如果选择不正确(假),就不执行指令,只是打印预览。
DoCmd.RunCommand acCmdPrint '开始执行打印
End If
End Sub
运行效果如下:
点击“否”后,就直接进行预览报表。
点击“是”,就进入执行打印报表程序了。
进入了打印对话过程了。
今天的消息就讲到这,明天再继续往下讲。