[AccessD] Parameter Queries via Code

Admin Sparky dba.email at gmail.com
Fri Apr 29 12:02:27 CDT 2005


Thank you Charlotte, that worked, but I'm still not getting past line
5...I'm now getting "Type mismatch (Error 13)".

1.        Set db = CurrentDb
2.        Set qdfMetrics = db.QueryDefs("qryMyQuery")
3.        qdfMetrics.Parameters(0) = Forms!frmDatePicker!Text14
4.        qdfMetrics.Parameters(1) = Forms!frmDatePicker!Text16
5.        Set rstMetrics = qdfMetrics.OpenRecordset(dbReadOnly)
6.        varResults = rstMetrics.GetRows(rstMetrics.RecordCount)
7.        Set objXLBook = GetObject(cXLPath & cXLFile)
8.        Set objXLApp = objXLBook.Parent
9.        Set objQuerySheet = objXLBook.Worksheets("ProductMetrics")
10.      objXLApp.Visible = True
11.      objXLBook.Windows(1).Visible = True
12.      Set objXLRange = objQuerySheet.Range("B1:G4")
13.      objXLRange.FormulaArray = varResults

Mark Mitsules



On 4/29/05, Charlotte Foust <cfoust at infostatsystems.com> wrote:
> Wen you handle a querydef like that in code, you have to pass the
> parameter values in the code.  You can't rely on a form, even if it is
> open.  So in your code, pass the value of Text14 and the value of Text16
> into the parameters like this:
> 
> qdfMetrics.Parameters(0) = Forms!frmDatePicker!Text14
> qdfMetrics.Parameters(1) = Forms!frmDatePicker!Text16
> 
> Then open your recordset.
> 
> Charlotte Foust
> 
> 
> -----Original Message-----
> From: Admin Sparky [mailto:dba.email at gmail.com]
> Sent: Friday, April 29, 2005 8:35 AM
> To: accessd at databaseadvisors.com
> Subject: [AccessD] Parameter Queries via Code
> 
> Group,
> 
> I have a stored parameter query where the parameters are taken from 2
> controls on a form...this part works great.  The query field is a date
> field and the form controls contain the "Start Date" and "End Date" with
> the parameter for that field listed as:
> 
> Between [Forms]![frmDatePicker]![Text14] And
> [Forms]![frmDatePicker]![Text16]
> 
> I have a report based on this query which I can run directly from this
> form...this part also works great.
> 
> Now the question.  From that same form I want to press a button which
> will take the results of that parameter query and put it into an Excel
> spreadsheet.  Can someone point me in the right direction to fill in the
> missing syntax at or around line 4?
> 
> 1.        Set db = CurrentDb
> 2.        Set qdfMetrics = db.QueryDefs("qryMyQuery")
> 3. ==> ?
> 4.        Set rstMetrics = qdfMetrics.OpenRecordset(dbReadOnly)
> 5. ==> ?
> 6.        varResults = rstMetrics.GetRows(rstMetrics.RecordCount)
> 7.        Set objXLBook = GetObject(cXLPath & cXLFile)
> 8.        Set objXLApp = objXLBook.Parent
> 9.        Set objQuerySheet = objXLBook.Worksheets("ProductMetrics")
> 10.        objXLApp.Visible = True
> 11.      objXLBook.Windows(1).Visible = True
> 12.      Set objXLRange = objQuerySheet.Range("B1:G4")
> 13.      objXLRange.FormulaArray = varResults
> 
> At the moment I am getting error 3061 on line 4: "Too few parameters.
> Expected 2."  Could this be a problem with scope?  The code above is in
> a separate module and is called by the Form code...is this a problem?
> 
> Thank you for any suggestions,
> 
> Mark Mitsules
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>



More information about the AccessD mailing list