2017-02-27 9 views
0

シナリオはAccess 2010のフロントエンド、SQLバックエンドを使用するアプリケーションです。ユーザーがフォームから1つまたは複数のレポートを選択し、選択肢を実行するボタンをクリックし、特定のレポートに応じてstrCriteriaタイプ・フィルターを使用してレポートを実行する必要があります。ほとんどの時間は20セット(異なる地理的基準)で10の異なるレポートで終わるでしょう。アプリケーションによる継続的な処理のために結果レポートをエクスポートする必要があります(適切な場合は、SQL DatabaseMailシステムを使用してファイルを添付して送信するか、別の方法で送信するタスクを設定します)。Access 2010 with SQL backend - プレビューなしでvbaを使用して複数のレポートをpdfに送信

レポートを開いて(doCmd.OpenReport)プレビューする必要なくファイルをエクスポートできるようにするために、ボタンをクリックしてから操作する必要はありません。コマンドラインでWhereConditionを使用してレポートを作成し、レポートを開き、doCmd.OutputToを使用してPDF(または他の形式)として保存するための基準を渡すことができますか。はい、私は、最初にレポートQueryDefを変更するか、データを保持するレポートごとに一時テーブルを作成したり、セレクタフォーム上にフィールドを作成したりして、条件を渡すことができます。必要があるかもしれませんが、a)条件付きのOpenReportがあるように見える、b)レポートを表示せずにレポートを開いたままにする、c)OutputTo pdf(私は目的地などのテーブルを設定するためのあらゆる種類の関数を持っています。 。)、d)レポートループを閉じる。

どのような考えですか?一時テーブルで終わらなければならないかもしれませんが(そこには他にも多くのことがあります)、複雑なレポートではありません。ほとんどの場合、SQLビューを見て条件を適用します。 SSRSをやりたくない。

おかげ - ベン

答えて

1

私はこのような何かが、きっとあなたのニーズを満たすためにパラメータを変更することによって、あなたのために働くだろうと思います。これにより、ユーザーにプロンプ​​トを表示せずに、自動的にレポートが作成されます。レポートが作成されたら、あなたは何でもする必要があります完了してください:

Sub Test() 

Const Param1 As Long = 1 
Const Param2 As String = "x" 
Const RptName As String = "r_t_test" 

DoCmd.OpenReport RptName, acViewPreview, , ("[value1] = " & Param1 & " And [value2] = '" & Param2 & "'"), acHidden 
DoCmd.OutputTo acOutputReport, RptName, acFormatPDF, CurrentProject.Path & "\" & RptName & ".pdf", False 
DoCmd.Close acReport, RptName 

End Sub 
+0

Hmm - それは私が(パラメータ文字列を保持する変数を作成する)私が考えたものです。以前に試してみたところ、それほど信頼できるとは思われませんでしたが、いくつかのテストを行うには、 "すべき"と思われます。それに少しでも取り組むことができます - 可能なバグを見つけ出すことができれば、私のモジュールライブラリの関数の基礎になります。ありがとう! – Ben

関連する問題