MS Access中DoCmd.OpenReport的参数数量错误

时间:2009-06-17 11:23:20

标签: ms-access compilation adp

很抱歉,如果这是一个noob问题,但我得到了一个可疑的荣誉,支持一个古老的遗留Access 2000 .adp应用程序,几年前由于某人不熟悉,当我没有使用Access或VB自己:))

我已经使用Access 2000(它是一个Access 2000项目)设置了一个WinXP开发机器来完成一些支持工作。有一个预先存在的代码行,它应该打印一个报告,它用6个参数调用DoCmd.OpenReport:

DoCmd.OpenReport ReportName, acViewPreview, , "orderId = 1234", , Printtype

当我运行它时,我得到一个编译错误:“错误的参数数量或无效的属性赋值”。

所以我在DoCmd.OpenReport上使用了'intellisense',我的访问VB代码编辑器告诉我它只需要4个参数,而不是6:ReportName,acViewNormal,FilterName和WhereCondition。当我转到命令的对象浏览器时,定义是:

Sub OpenReport(ReportName,[View as AcView = acViewNormal],[FilterName],[WhereCondition])     Access.DoCmd的成员(即4 args)

查看网络上的各种帖子,有些人似乎正在传递4个参数,有些人认为是什么?我猜有不同版本的Access代码库,我错了。但我不知道从哪里开始解决这个问题。任何人都知道Access并可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

在Access 2000中,OpenReport方法接受了4个参数:

  

DoCmd.OpenReport reportname [,view] [,filtername] [,wherecondition]

其中[,参数]是可选的。

在Access XP中,OpenReport增加了2个参数:

  

DoCmd.OpenReport reportname [,view] [,filtername] [,wherecondition] [,windowmode] [,openargs]

Printtype 被用作报告的参数,需要使用其他方法传递,例如从表格字段或公共财产中读取。

答案 1 :(得分:0)

删除WhereCondition参数后的所有内容。其他参数适用于更高版本的Access(它们适用于WindowMode和OpenArgs)