0

質問に入る前に、何が起こっているのか概要を説明します。

アクセス

JobId を選択する ComboBox を持つフォーム

クリスタルレポート

すべて JobID に基づいて、複数のテーブルから情報を呼び出すレポート

VB

Crystal Reports Designer アプリの外部でレポートを表示するフォーム (Crystal Reports プラグインを使用)。

私の問題

Access ComboBox で選択したジョブに合わせて、VB に表示されるレポートをフィルター処理する必要があります。

アップデート

データベースを VS2012 にリンクしていますが、問題なく動作します。テーブルから情報を簡単に取得できます。私がする必要があるのは、ComboBox をアクセス フォームから VS2012 にリンクして、レポート フィルター 処理することです。

それが私の質問をより明確にすることを願っています。

更新 2

Access 内の ComboBox の値に基づいてSELECTクエリを作成する方法を理解できたので、それを使用して探している値にアクセスできるはずですが、その使用方法を知る必要があります。 CR のフィルターとしての値...

4

2 に答える 2

1

考えられる解決策の 1 つは、CR でクエリをレプリケートする保存済みの選択クエリを Access で作成し、そのクエリに [JobReport_base] という名前を付けることです。次に、別の保存済みの選択クエリを Access で作成し、[JobReport_current] という名前を付けます。.SQL[JobReport_current] クエリのプロパティを更新して、選択した [JobId] のレコードのみを返すコードを Access フォームに追加します。

Dim qdf As DAO.QueryDef
Set qdf = CurrentDb.QueryDefs("JobReport_current")
qdf.SQL = "SELECT * FROM JobReport_base WHERE JobId = " & cbxJobId
Set qdf = Nothing

次に、Crystal Report を更新して、個々のテーブルではなく [JobReport_current] クエリからデータを取得します。

于 2013-08-19T19:31:24.603 に答える
0

複数のソリューション。あなたの場合、最も単純なものは次のとおりです。

  • 文字列を直接更新することで更新できるレポートの「sqlQueryString」プロパティがあります。
  • レポートにパラメーター (「PAR_yourCombobox」と呼びましょう) を追加することもできます。VB コードでレポートにアクセスするときは、パラメーターの値を画面上の値に設定するだけです。私が覚えている限りでは、次のようになります。

    yourReport.parameterFields(i).addCurrentValue yourForm.controls("yourCombobox").value

于 2013-08-19T19:41:54.117 に答える