Is qryNewInfo the query you showed in the previous posts that already has the forms.[.... parameter? Because if it is in this example you're are duplicating it. If you reference a query (qryNewInfo) that has a reference to a form control in VBA you will get the too few parameters error. So you would need to remove it from the query (or eliminate the query all together and reference the source table directly) and build your insert SQL in VBA like you have it or save the insert SQL as an append query and use
Code:
Docmd.Setwarnings False
Docmd.OpenQuery "qryAppendNewToOld"
Docmd.SetWarnings True
Alternatively (and generally recommended ) is using CurrentDb.Execute "qryAppendNewToOld",dbFailOnError but that will involve some extra lines of code to force the evaluation of parameters:
Code:
Dim qdf as DAO.QueryDef,prm as Parameter
Set qdf=CurrentDb.QueryDefs("qryAppendNewToOld")
For each prm in qdf.Parameters
prm.Value=Eval(prm.Name)
Next prm
qdf.Execute dbFailOnError
EDIT:Here is what I meant by eliminating the query and using the table:
Code:
strNEW = "INSERT INTO tblOLD " & _
"SELECT DISTINCTROW tblNewInfo.OldName, tblNewInfo.First, " & _
"tblNewInfo.Second FROM tblNewInfo " & _
"WHERE tblNewInfo.RequestKey= " & Me.RequestKey & ";"
And maybe show us an example with Forms. instead of Me......
Cheers,