ここで間違ったことを理解できないようです。私は "qdf.Parameters ..."で始まる3行でエラー3265(このコレクションに見つかりません)が表示されます。私の理解は、ここで私のSQL文のwhere節を定義することですが、多分私は間違っています?アクセスがあるvbaにはかなり新しいので少し混乱します。VBAにアクセス - qdfパラメータの項目が見つかりません - エラー3265
Sub Save_Invoices_Meet_Criteria()
Dim FileName As String
Dim FilePath As String
Dim myStmt As String
Dim Db As DAO.Database
Dim myrs As DAO.Recordset
Set Db = CurrentDb()
Dim qdf As DAO.QueryDef
Set qdf = Db.QueryDefs("qryCreateInvoicesApproved")
qdf.Parameters("[Forms]![frmAccountingDatabaseInput]![Invoice_approved]") = [Forms]![frmAccountingDatabaseInput]![Invoice_approved]
qdf.Parameters("[Forms]![frmAccountingDatabaseInput]![invoice_date]") = [Forms]![frmAccountingDatabaseInput]![Combo272]
qdf.Parameters("[Forms]![frmAccountingDatabaseInput]![Invoice_Type}") = [Forms]![frmAccountingDatabaseInput]![Combo274]
Set myrs = CurrentDb.OpenRecordset("SELECT distinct [reference] from qryCreateInvoicesApproved", 2)
Do Until myrs.EOF
FileName = Me.reference
foldername = Format(Now(), "YYYY-MM-DD")
FilePath = "C:\Users\company\Desktop\Invoicing Database\Save_Test\" & foldername & "\" & FileName & ".pdf"
DoCmd.OpenReport "RPTInvoice", acFormatPDF, FilePath
'DoCmd.OutputTo acOutputReport, , acFormatPDF, FilePath
DoCmd.Close
myrs.MoveNext
Loop
myrs.Close
Set myrs = Nothing
End Sub
マイSQL文:あなたは、パラメータクエリを使用しますが、実際にそれにコミットしていないために自分自身を強制しようとしているようですが、一種の見え
SELECT tblAccountingDatabase.*
FROM tblAccountingDatabase
WHERE (((tblAccountingDatabase.Invoice_approved)=Yes) And ((tblAccountingDatabase.invoice_date)=Forms!frmAccountingDatabaseInput!Combo272) And ((tblAccountingDatabase.Invoice_Type)=Forms!frmAccountingDatabaseInput!Combo274));
パラメータクエリとquerydefを読んでください。 'qryCreateInvoicesApproved'であなたのパラメータを定義してから、クエリで定義された実際のパラメータ名を使用する必要があります。あなたのフォームのレコードセットに基づいて、いくつかのタイプのハイブリッドパラメータを使用しようとしているようですね。 – dbmitch