2009-06-17 117 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