1

これが初心者の質問である場合は申し訳ありませんが、Access や VB の経験がほとんどないときに、何年も前に誰かによって書かれた古いレガシー Access 2000 .adp アプリケーションをサポートするという疑わしい名誉を与えられました。 )

サポート作業を行うために、Access 2000 (これは Access 2000 プロジェクトです) を搭載した WinXP 開発マシンをセットアップしました。レポートを出力することになっている既存のコード行があり、6 つの引数で DoCmd.OpenReport を呼び出します。

DoCmd.OpenReport ReportName, acViewPreview, , "orderId = 1234", , Printtype

実行すると、「引数の数が間違っているか、プロパティの割り当てが無効です」というコンパイルエラーが発生します。

そのため、DoCmd.OpenReport で「intellisense」を使用しました。アクセス VB コード エディターは、R​​eportName、acViewNormal、FilterName、および WhereCondition の 6 つではなく、4 つの引数しか期待していないことを示しています。コマンドのオブジェクト ブラウザーに移動すると、定義は次のようになります。

Sub OpenReport(ReportName, [View As AcView = acViewNormal], [FilterName], [WhereCondition]) Access.DoCmd のメンバー (つまり、4 つの引数)

Web 上のさまざまな投稿を見ると、4 つの引数を渡す人もいれば、6 つの引数を渡す人もいるようです。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 に答える