很抱歉,如果这是一个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并可以帮助我吗?
答案 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)