Ich kann nicht scheinen zu verstehen, was ich hier falsch gemacht habe. Ich bekomme einen Fehler 3265 (Artikel nicht in dieser Sammlung gefunden) in den drei Zeilen beginnend mit "qdf.Parameters ..." Ich verstehe, dass ich hier die where-Klausel meiner SQL-Anweisung definiere, aber vielleicht liege ich falsch ? Ziemlich neu zu vba mit Zugang so ein wenig verwirrt.Zugang VBA - qdf Parameter Artikel nicht gefunden - Fehler 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
My SQL-Anweisung:
SELECT tblAccountingDatabase.*
FROM tblAccountingDatabase
WHERE (((tblAccountingDatabase.Invoice_approved)=Yes) And ((tblAccountingDatabase.invoice_date)=Forms!frmAccountingDatabaseInput!Combo272) And ((tblAccountingDatabase.Invoice_Type)=Forms!frmAccountingDatabaseInput!Combo274));
Sie müssen nur auf Parameter Abfragen lesen und Querydefs verwenden. Sie müssen Ihre Parameter in 'qryCreateInvoicesApproved' definieren und dann die tatsächlichen Parameternamen verwenden, die in der Abfrage definiert sind. Es sieht so aus, als ob Sie versuchen, eine Art von Hybrid-Parametern zu verwenden, die auf dem Re-Cord-Set Ihres Formulars basieren ??? – dbmitch