darksoullight
03-06-2008, 12:56
ciao a tutti.
ho un problema con il vba di access.
devo passare ad una query una serie di parametri provenienti da più maschere ma mi da il seguente errore: "Elemento non trovato in questo insieme."
questa è la query di access
PARAMETERS prmAnno Short, prmStagione Short, prmZona Short, prmZonaFin Short, prmAge Short, prmAgeFin Short, prmData DateTime, prmSelZona Short;
SELECT Ordini.Cliente
FROM Ordini
WHERE (((Ordini.DesNum30)<>IIf([prmSelZona]=3,'EST',IIf([prmSelZona]=4,'ITA',' '))) AND ((Ordini.Anno)=[prmAnno]) AND ((Ordini.Stagione)=[prmStagione]) AND ((Ordini.DataOrdine)<=[prmData]) AND ((Ordini.Zona)=[prmZona] Or (Ordini.Zona)>=[prmZonaFin]) AND ((Ordini.Agente)=[prmAge] Or (Ordini.Agente)>=[prmAgeFin]))
GROUP BY Ordini.Cliente;
e questo il codice di vba
Set qdf = db1.QueryDefs!QryRep001a_diff
qdf.Parameters!prmAnno = Forms!MRep001!IAnno
qdf.Parameters!prmStagione = Forms!MRep001!IStagione
qdf.Parameters!prmData = Forms!MRep001!DataMax
qdf.Parameters!prmZona = Forms!MRep001!prmZona
qdf.Parameters!prmZonaFin = Forms!MRep001!prmZonaFin
qdf.Parameters!prmAge = Forms!MRep001!prmAge
qdf.Parameters!prmAgeFin = Forms!MRep001!prmAgeFin
qdf.Parameters!prmSelZona = Forms!MRep001!SelZona
qdf.Parameters!prmData = Forms!MRep001!DataMax
Set rst = qdf.OpenRecordset
If rst.BOF = True Or rst.EOF = True Then GoTo nodati1nor
rst.MoveFirst
l'errore mi viene restituito al parametro prmAge.
ho controllato tutti i nomi e le tipologie ma niente.
qualcuno di voi mi può aiutare?grazie mille!
ho un problema con il vba di access.
devo passare ad una query una serie di parametri provenienti da più maschere ma mi da il seguente errore: "Elemento non trovato in questo insieme."
questa è la query di access
PARAMETERS prmAnno Short, prmStagione Short, prmZona Short, prmZonaFin Short, prmAge Short, prmAgeFin Short, prmData DateTime, prmSelZona Short;
SELECT Ordini.Cliente
FROM Ordini
WHERE (((Ordini.DesNum30)<>IIf([prmSelZona]=3,'EST',IIf([prmSelZona]=4,'ITA',' '))) AND ((Ordini.Anno)=[prmAnno]) AND ((Ordini.Stagione)=[prmStagione]) AND ((Ordini.DataOrdine)<=[prmData]) AND ((Ordini.Zona)=[prmZona] Or (Ordini.Zona)>=[prmZonaFin]) AND ((Ordini.Agente)=[prmAge] Or (Ordini.Agente)>=[prmAgeFin]))
GROUP BY Ordini.Cliente;
e questo il codice di vba
Set qdf = db1.QueryDefs!QryRep001a_diff
qdf.Parameters!prmAnno = Forms!MRep001!IAnno
qdf.Parameters!prmStagione = Forms!MRep001!IStagione
qdf.Parameters!prmData = Forms!MRep001!DataMax
qdf.Parameters!prmZona = Forms!MRep001!prmZona
qdf.Parameters!prmZonaFin = Forms!MRep001!prmZonaFin
qdf.Parameters!prmAge = Forms!MRep001!prmAge
qdf.Parameters!prmAgeFin = Forms!MRep001!prmAgeFin
qdf.Parameters!prmSelZona = Forms!MRep001!SelZona
qdf.Parameters!prmData = Forms!MRep001!DataMax
Set rst = qdf.OpenRecordset
If rst.BOF = True Or rst.EOF = True Then GoTo nodati1nor
rst.MoveFirst
l'errore mi viene restituito al parametro prmAge.
ho controllato tutti i nomi e le tipologie ma niente.
qualcuno di voi mi può aiutare?grazie mille!