Have you tried this: This solves the "Too few parameters - expected nn".
Courtesy of Litwin, Getz et al
Dim db As Database, rst As Recordset, qdf As QueryDef, prm As Parameter
Set db = CurrentDb
Set qdf = db.QueryDefs("qrySomethingWithParameter")
For Each prm In qdf.Parameters...