2009-06-17 120 views
1

很抱歉,如果这是一个noob问题,但我一直在考虑的一个配套古代遗留下来的Access 2000 .ADP应用可疑的荣誉,有人几年写的不好谁前不再到处,当我有一点经验与Access或VB自己:)的在MS Access论据DoCmd.OpenReport错误数

我已经建立了一个WinXP的开发机与Access 2000(这是一个Access 2000项目)做一些支持工作。有一个预先存在的代码行这应该打印一份报告,其中有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个参数)

寻找各种帖子在网络上,有些人似乎被路过的4个ARGS,一些6.什么原因呢?我猜测有不同版本的Access代码库,而且我错了。但我不知道从哪里开始解决这个问题。任何人都知道Access并可以帮助我?

回答

1

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

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

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

在Access XP,OpenReport获得2个参数,得到:

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

打印类型被用作一个参数的报告,并且将需要在使用另一种方法,例如将被传递从表单字段或公共属性中读取。

0

WhereCondition参数后,只是删除了一切。附加参数是供以后访问的版本(它们是WindowMode和OpenArgs)

+0

不暗示,也许海报并没有应用最新的服务pascks为Access 2000和Jet引擎? – 2009-06-17 11:48:37

+0

我安装了所有最新的服务包,但没有解决问题。问题是我需要Access XP(查看接受的答案) – 2009-06-17 13:58:20