Microsoft Access 掲示板

OpenReportでWhere Conditionで指定している変数が反応しない

4 コメント
views
4 フォロー

はじめまして。お世話になります。

Private Sub コマンド0_Click()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset

    Set db = CurrentDb
    Set rs = db.OpenRecordset("SELECT DISTINCT 仕入先コード FROM data ", dbOpenForwardOnly, dbReadOnly)

    Do Until rs.EOF
        DoCmd.OpenReport "外注預", acViewPreview, , "[仕入先コード]=" & rs!仕入先コード
        DoCmd.OutputTo acOutputReport, "外注預", acFormatPDF,
                       "C:\Users\a-nakanishi\Desktop\テスト\" & Format(Date, "yyyymm") & "
" & rs!仕入先コード & ".pdf"
        DoCmd.Close acReport, "外注預"
        rs.MoveNext
    Loop

    rs.Close
End Sub

●使用しているもの
data テーブル
外注預 レポート
仕入先コードでレポートを抽出

●やりたいこと
仕入先コードごとにレポートをPDFで保存したい
PDFの保存はできています。

●困っていること
DoCmd.OpenReport "外注預", acViewPreview, , "[仕入先コード]=" & rs!仕入先コード
ここでパラメータの入力が出てしまう。変数でレポートを自動で抽出できない。

rs!仕入先コード変数に仕入先コードは入っているのですが、
パラメータの入力を要求されます。
パラメータの入力の下のA020050は仕入先コードです、手入力で一つ一つ仕入先コードを入れると正しくPDFが作られます。
指定の仕方がおかしいのでしょうか?
初歩的な質問で申し訳ありませんがよろしくお願いいたします。

名前なし
作成: 2022/02/24 (木) 23:53:56
通報 ...
1
りんご 2022/02/25 (金) 00:45:47 c564b@0e907

 ググっただけですが、参考になれば幸いです。

VBA MS Access OpenReport with Where clause issue
I have an issue with my VBA code. I tried to use Where condition in a OpenReport to filter in my table all my mice alives. The code I used: DoCmd.OpenReport "E_G_Mouse", acViewReport,, [...
Stack Overflow

3

ありがとうございます!参考にさせていただきます。

2
hiroton 2022/02/25 (金) 08:46:08 9e337@f966d

DoCmd.OpenReport "外注預", acViewPreview, , "[仕入先コード]=" & rs!仕入先コード

パラメータの入力の下のA020050は仕入先コードです、手入力で一つ一つ仕入先コードを入れると正しくPDFが作られます。

ちゃんと読んでませんが

WHERE "[仕入先コード]=" & rs!仕入先コード
↓
WHERE "[仕入先コード]=A020050"

となるならパラメータ要求されて当然です
仕入先コードが文字列なら

"[仕入先コード]='" & rs!仕入先コード & "'"

"[仕入先コード]=" & rs!仕入先コード

"[仕入先コード]='" & rs!仕入先コード & "'"

とする必要があります

手入力でうまくいく場合のWHERE句を確認してみてください

4

できました!
三日三晩悩んでいました。やっと安らかに眠れます。
本当にどうもありがとうございました!