1

レポートとレポートの印刷に関する難しい要件に遭遇しました。要件は次のとおりです。レポートを作成します(5ページとしましょう)。各ページは、コードを介してファイル名を動的に(そのページのレコードIDを使用して)提供して、異なるファイルに保存する必要があります。

現在、Access と VBA で試してみたところ、X ページのレポートは取得できましたが、レポートの各ページを別々のファイルに保存できませんでした。どうすればこれを達成できますか?

この目標を達成するのに役立つ他のテクノロジはありますか? C# や Java でのプログラミングは役に立ちますか? 私はこれで3日間これにこだわっています。

ありがとう

私のアクセスコードと問題:

Private Sub Report_Click()
 Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim MyFilename As String
Dim MyPath As String
Dim temp As String
Set db = CurrentDb
MyPath = "c:\temp\"
Dim stremp As String
stremp = "select distinct(empno) from query2"
Set rs = db.OpenRecordset(stremp)
Do While Not rs.EOF
    temp = rs("Empno")
    MyFilename = rs("EMPNO") & ".PDF"
    DoCmd.OpenReport "FORM", acViewReport, "EMPNO" = " & temp"
    'DoCmd.OpenReport "form", acViewPreview, , "empno", acWindowNormal
    DoCmd.OutputTo acOutputReport, "", acFormatPDF, MyPath & MyFilename
    'do.cmd.outputto
    DoCmd.Close acReport, "FORM"
     DoEvents
    rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Set db = Nothing
 End Sub

レコードセットには 5 つのレコード、つまり 5 ページがあります。5 ページを 5 回印刷します。代わりに、Record1 用に 1 つ、Record2 用に 1 つだけ作成する必要があります。

私のコードが間違っている/不適切な場所を知るのを手伝ってくれる人はいますか?

ありがとう

4

2 に答える 2

1

Access のコードが機能しない理由を教えてください。

このステートメントには問題があります。

DoCmd.OpenReport "FORM", acViewReport, "EMPNO" = " & temp"

の 3 番目の引数はDoCmd.OpenReport[FilterName]「現在のデータベース内のクエリの有効な名前である文字列式」です。不運にも、

"EMPNO" = " & temp"

False2 つの文字列が等しくないため、常になるブール式です。私はあなたが次のようなことを念頭に置いていたと思います:

DoCmd.OpenReport "FORM", acViewReport, , "EMPNO = " & temp

ここで、4 番目の引数 は[WhereCondition]、「WHERE という単語を含まない有効な SQL WHERE 句である文字列式」です。

于 2013-06-18T17:19:16.760 に答える