1

抱歉,如果这是一个菜鸟问题,但我有幸支持一个古老的遗留 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 个参数)

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

4

2 回答 2

1

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

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

其中 [, parameter ] 是可选的。

在 Access XP 中,OpenReport获得了另外 2 个参数:

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

Printtype被用作报告的参数,需要使用另一种方法传入,例如从表单字段或公共属性中读取。

于 2009-06-17T11:48:03.173 回答
0

只需删除 WhereCondition 参数之后的所有内容。附加参数适用于更高版本的 Access(它们适用于 WindowMode 和 OpenArgs)

于 2009-06-17T11:42:34.417 回答