访问 msgbox 是 否 选择报告 - 打开错误的报告?

     2023-05-06     184

关键词:

【中文标题】访问 msgbox 是 否 选择报告 - 打开错误的报告?【英文标题】:Access msgbox Yes No to Choose Report - Opening Wrong Report? 【发布时间】:2017-06-26 12:23:24 【问题描述】:

我设置了以下简单代码,以选择报告是否应显示“排除”组。

 Private Sub cmdRptWorktypesByGroups_Click()
     Dim rptExclYN As String

     rptExclYN = MsgBox("Would you like this report with excluded groups (Yes)" & vbclrf & " or without excluded practice groups (No)?", vbYesNo, "Choose Report With or Without excluded groups")

     If rptExclYN = Yes Then
         DoCmd.OpenReport "rptWorkTypebyGroups", acViewReport
     Else
         DoCmd.OpenReport "rptWorkTypebyGroupsNoExcl", acViewReport
     End If

 End Sub

这是我的代码。它应该是完全直截了当的。问题是,当用户单击是时,它会打开 rptWorkTypebyGroupsNoExcl 报告。当我单击否时,它仍会打开相同的报告。谁能告诉我可能做错了什么?

我最初有 rptWorkTypebyGroups 报告,带有查询记录源。我复制了该报告,将副本重命名为 rptWorkTypebyGroupsNoExcl,并将其记录源查询保存为自己的名称。我不知道为什么消息框没有打开正确的报告。有人可以帮忙吗?

谢谢!

【问题讨论】:

【参考方案1】:

MsgBox() 函数返回一个 VbMsgBoxResult 值(一个整数),而不是一个字符串。

由于您显然没有启用 Option Explicit,Yes 被创建为新的空 Variant,因此无论您选择什么,您的 If 条件将始终为 false。

Option Explicit 放在每个模块的顶部。 它强制执行变量声明并在编译时报告未声明或拼写错误的变量/常量。 要在新模块中自动启用此功能,请在 VBA 编辑器中设置 Require Variable Declaration 选项。

正确代码:

Private Sub cmdRptWorktypesByGroups_Click()

     Dim rptExclYN As VbMsgBoxResult 

     rptExclYN = MsgBox("Would you like this report with excluded groups (Yes)" & vbCrLf & " or without excluded practice groups (No)?", vbYesNo, "Choose Report With or Without excluded groups")

     If rptExclYN = vbYes Then
         DoCmd.OpenReport "rptWorkTypebyGroups", acViewReport
     Else
         DoCmd.OpenReport "rptWorkTypebyGroupsNoExcl", acViewReport
     End If

End Sub

编辑:这是vbCrLf,而不是vbclrf。 Option Explicit 会捕获的另一个。

【讨论】:

谢谢!感谢您抽出宝贵时间给我其他建议。【参考方案2】:

我是个白痴。我说的是 rptExclYN = Yes 而不是 rptExclYN = vbYes。我的错。这是有效的简单代码:

Dim rptExclYN As Variant

rptExclYN = MsgBox("Would you like this report with excluded groups (Yes)" & vbCrLf & _
" or without excluded groups (No)?", vbYesNo, "Choose Report With or Without Excluded Groups")

If rptExclYN = vbYes Then
    DoCmd.OpenReport "rptWorkTypebyGroups", acViewReport
ElseIf rptExclYN = vbNo Then
    DoCmd.OpenReport "rptWorkTypebyGroupsNoExcl", acViewReport
End If

希望这对其他人有所帮助,因为那样就意味着我不是唯一一个缺少简单事物的人。

【讨论】:

不过,你应该像@Andre 向你展示的那样Dim rptExclYN

权限被拒绝:'Msgbox'

】权限被拒绝:\\\'Msgbox\\\'【英文标题】:Permissiondenied:\'Msgbox\'权限被拒绝:\'Msgbox\'【发布时间】:2016-01-0805:20:45【问题描述】:我正在使用VBA创建带有是/否响应的消息框。特别是,消息框工作正常,但我在此之后放置的任何... 查看详情

VBScript MsgBox 总是报告错误。我需要在计算机上安装啥库?

】VBScriptMsgBox总是报告错误。我需要在计算机上安装啥库?【英文标题】:VBScriptMsgBoxalwaysreportsfalse.WhatlibrarydoIneedinstalledonthecomputer?VBScriptMsgBox总是报告错误。我需要在计算机上安装什么库?【发布时间】:2013-02-0616:46:51【问题描... 查看详情

VBA - 在 msgbox 之后返回用户窗体

】VBA-在msgbox之后返回用户窗体【英文标题】:VBA-GobacktoUserformaftermsgbox【发布时间】:2022-01-1921:20:55【问题描述】:我有一个用户窗体,其中当前有15个组合框。允许用户选择本季度、上季度和去年的5个报告。由于有很多可供选... 查看详情

vb6.0怎么把msgbox设置成有是、否、取消三个按钮呢,菜鸟路过,求帮助。代码又是怎么写的呢??

...“是、否和确定?这个代码怎么写? 一行代码搞定:MsgBox"是否取消是这样的么??",vbYesNoCancel,"提示"参考技术APrivateSubCommand1_Click()aa=MsgBox("内容",vbYesNoCancel,"标题")Ifaa=6ThenMsgBox"是"ElseIfaa=7ThenMsgBox"否... 查看详情

如何在 MS Access 中选择是/否字段(我收到错误消息)

】如何在MSAccess中选择是/否字段(我收到错误消息)【英文标题】:HowtoselectYes/NofieldinMSAccess(Igetanerror)【发布时间】:2014-06-2914:43:18【问题描述】:现在我有这个代码:DimadapterAsNewOleDbDataAdapter("Select1stShiftas[FirstShift]from&_Employe... 查看详情

访问:取消报告生成导致错误 2501

】访问:取消报告生成导致错误2501【英文标题】:Access:CancelingReportgenerationcauseserror2501【发布时间】:2009-09-2912:26:36【问题描述】:不敢相信我在这件事上浪费了这么多时间。我有一个订单,当我点击一个按钮“报告”时,一个... 查看详情

测试用例评审报告单

 这里是以个人项目中实际评审内容说明:如果大家有更好的欢迎分享; 序号问题回答1在设计测试用例前,是否先画好UML时序图、状态图或数据流程图等?是【】否【】2是否有常见错误表供编写测试用例使用?是【】否... 查看详情

vba删除语法

...类型是停止图标,4指出现的按钮是“是”“否”按钮If(MsgBox("确定删除所有数据吗?",vbCritical+16+4,"温馨提示")=vbNo)Then &nb 查看详情

通过 .net 工作打开访问报告,但不工作

】通过.net工作打开访问报告,但不工作【英文标题】:OpeningAccessreportvia.networking,butnotworking【发布时间】:2011-08-1817:33:37【问题描述】:我正在尝试通过.net打开访问报告。我可以使用Access.AcView.acViewNormal在正常模式下打开它,但... 查看详情

访问报告中的绑定组合框为空

】访问报告中的绑定组合框为空【英文标题】:BoundcomboboxgoesemptyinAccessReport【发布时间】:2020-03-2718:37:28【问题描述】:我有一个带有组合框的访问表单,该组合框绑定到选择2个字段的查询。通过在组合框的属性表中设置以下... 查看详情

电子图版打印时出错误报告

...机。1、打开设备和打印机页面,找到您的打印机,右键选择查看现在正常打印什么选项,清除前面正在打印的内容。2、在开始,设置,管理工具,服务,双击PrintSpooler,在常规里面点停止。3、打开运行对话框,输入Spool,打开P... 查看详情

无法打开物理文件操作系统错误5:5(拒绝访问。)问题解决

该问题主要是由于安装数据库软件时,给数据库软件授予比较低的权限造成的:1.通过开始菜单选择所有程序-SQLServer2005-配置工具-选择"SQLServerConfigurationManager"或者“SQLServer配置管理器”,打开“SQLServerConfigurationManager”配置界面... 查看详情

访问 2016 表单按钮以根据当前记录打开报告

】访问2016表单按钮以根据当前记录打开报告【英文标题】:Access2016formbuttontoopenreportbasedoncurrentrecord【发布时间】:2019-04-1215:39:35【问题描述】:我正在尝试在表单上创建一个按钮,该按钮将打开仅包含当前记录的报表。我做了... 查看详情

vba语句:msgbox

常量值说明vbOKOnly0只显示确定按钮VbOKCancel1显示确定和取消按钮VbAbortRetryIgnore2显示终止、重试和忽略按钮VbYesNoCancel3显示是、否和取消按钮VbYesNo4显示是和否按钮VbRetryCancel5显示重试和取消按钮VbCritical16显示关键信息图标VbQuestion32... 查看详情

访问 2010 如何检查是不是检查了是/否字段

】访问2010如何检查是不是检查了是/否字段【英文标题】:access2010howtocheckifyes/nofieldischecked访问2010如何检查是否检查了是/否字段【发布时间】:2013-04-0218:27:04【问题描述】:我不断收到此错误:在非对象上调用成员函数fetch()用... 查看详情

刚下载的3dmax2016一打开就显示错误报告,求解。

...符合你这个电脑系统的位数3、图形模式设置不当,没有选择恰当的显卡驱动程序解决方法:1、选择正确的安装路径2、安装符合电脑系统位数的软件,3dmax2016要求系统在64位以上3、用超级管理员账户安装,可单击右键选择“管理... 查看详情

一键汇总报告模型可能会需要修改的地方(代码片段)

...夹路径如何取消清除提醒,避免每次点击弹窗选择?注释掉MsgBox这两行即可,注释方法是在代码前加英文状态下单引号'如何取消完成弹窗提醒?同上,注释掉MsgBox函数如果觉得反复打开工作簿太闪怎么办?解注释Application.ScreenUpdating... 查看详情

错误:(1045)用户'root'@'localhost'的访问被拒绝(使用密码:否)

】错误:(1045)用户\\\'root\\\'@\\\'localhost\\\'的访问被拒绝(使用密码:否)【英文标题】:Error:(1045)Accessdeniedforuser\'root\'@\'localhost\'(usingpassword:NO)错误:(1045)用户\'root\'@\'localhost\'的访问被拒绝(使用密码:否)【发布时间】... 查看详情