MS AccessのDoCmd.OpenReportの引数の数が間違っています
-
06-07-2019 - |
質問
これがnoobの質問である場合は申し訳ありませんが、私は、アクセスや経験がほとんどないとき、もう何年も前にいない誰かが書いた古代のレガシーAccess 2000 .adpアプリケーションをサポートするという疑わしい名誉を与えられましたVB自身:)
いくつかのサポート作業を行うために、Access 2000(Access 2000プロジェクト)でWinXP開発マシンをセットアップしました。 6つの引数でDoCmd.OpenReportを呼び出す、レポートを印刷することになっている既存のコード行があります。
DoCmd.OpenReport ReportName, acViewPreview, , "orderId = 1234", , Printtype
実行すると、コンパイルエラーが発生します。「引数の数が間違っているか、プロパティの割り当てが無効です」。
したがって、DoCmd.OpenReportで「intellisense」を使用しましたが、アクセスVBコードエディターでは、6つではなく4つの引数(ReportName、acViewNormal、FilterName、およびWhereCondition)のみを想定していることがわかります。コマンドのオブジェクトブラウザーに移動すると、定義は次のようになります。
Sub OpenReport(ReportName、[View As AcView = acViewNormal]、[FilterName]、[WhereCondition]) Access.DoCmdのメンバー(4つの引数)
ウェブ上のさまざまな投稿を見ると、4つの引数、6つの引数を渡す人がいるようです。 Accessコードライブラリにはさまざまなバージョンがあると思いますが、間違っています。しかし、私はこれをどこで解決し始めるのか分かりません。誰でもAccessを知っていて、私を助けることができますか?
解決
Access 2000では、 OpenReport メソッドは4つのパラメーターを受け入れました:
DoCmd.OpenReport reportname [、view] [、filtername] [、wherecondition]
where [、 parameter ]はオプションです。
Access XPでは、 OpenReport が取得されました提供する2つのパラメーター:
DoCmd.OpenReport reportname [、view] [、filtername] [、wherecondition] [、windowmode] [、openargs]
Printtype はレポートへの引数として使用されており、別のメソッドを使用して渡す必要があります。フォームフィールドまたはパブリックプロパティから読み取ります。
他のヒント
WhereCondition引数の後のすべてを削除します。追加の引数は、Accessの新しいバージョン用です(WindowModeおよびOpenArgs用です)