次の方法で共有

アクセスのレポート出力を、一枚一レコード分の内容で個々のPDFにしたい。

Anonymous
2020-07-13T08:18:27+00:00

こんにちは。いつもお世話になっております。

実は、半年前くらいには稼働していたモジュールが、

「実行時エラー3265 要求された名前、または序数に対応する項目がコレクションでみつかりません」

で、異常終了してしまいます。

いかにモジュールを書きます。

Sub makepdffiles()

Const TBL_NAME = "レポート元"

Const RPT_NAME = "服飾"

Const PDF_PATH = "C:/Users/cono/Documents/"

Dim rs As ADODB.Recordset

Set rs = New ADODB.Recordset

rs.Open TBL_NAME, CurrentProject.Connection, adOpenStatic, adLockReadOnly

Do While Not rs.EOF

  pdfname =rs!社員番号

  DoCmd.OpenReport RPT_NAME, acViewPreview, , "ID=" & rs!id

  DoCmd.OutputTo acOutputReport, RPT_NAME, acFormatPDF, PDF_PATH & pdfname & ".pdf"

  DoCmd.Close

  rs.MoveNext

Loop

End Sub

どうも、rs!id が許されないようです。

うまく稼働しているモジュールと比べても、ファイル名が違うだけで後は同じです。(コピペですので。)

又、以前ADOの選択でてこずりましたので念のため見比べたのですが、両方ともにADO2.1Library

でした。

PCはwin10、アクセスは2016です。

どなたか教えてください。

宜しくお願いいたします。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

3 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2020-07-20T02:38:21+00:00

    sk.exe様

    返信遅れまして申し訳ございません。

    idというフィールド名ですが、うまく個々にPDF形式に出力できたテーブルにはありましたが、

    できないテーブルにはありませんでした。(ちなみにオートナンバー型でした)

    何かの記事を読みかじって作成したモジュールですので、詰まってしまうとこの有様です。

    レポートの読み込みファイルにオートナンバー型のidを追加したところ、無事に期待通りの結果が出ました。

    今回も本当にありがとうございました!感謝しております。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2020-07-14T04:01:29+00:00

    sk.exe様

    今回もお世話になります。よろしくお願いいたします。

    教えていただいた通り書き換えてみましたが、

    同じエラーが返ってきました。

    まずは、IDというフィールド名が存在するかどうかを確認いたします。

    有難うございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2020-07-14T01:00:17+00:00

    > 実行時エラー3265

    > 要求された名前、または序数に対応する項目が

    > コレクションでみつかりません

    > Const TBL_NAME = "レポート元"

    > Dim rs As ADODB.Recordset

    > Set rs = New ADODB.Recordset

    >

    > rs.Open TBL_NAME, CurrentProject.Connection, adOpenStatic, adLockReadOnly

    > DoCmd.OpenReport RPT_NAME, acViewPreview, , "ID=" & rs!id

    まず確認すべきなのは、[id]という名前の(大文字/小文字、半角/全角の違いもなく一致する)

    フィールドがテーブル(またはクエリ)[レポート元]に存在しているかどうかでしょう。


    DoCmd.OpenReport RPT_NAME, acViewPreview, , "ID=" & rs**("ID").Value**


    とりあえず、以上のように書き換えてみて下さい。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません