Newsgroup: it.comp.appl.access
Titolo: parametri da vba in query

Ho la necessit� di passare tramite una textbox non associata di una maschera
un valore ( <>0 ) nella query 1.
Private Sub ultimoacquisto_BeforeUpdate(Cancel As Integer)
Dim dbs As DAO.Database
   Dim qdf As DAO.QueryDef
   Dim rst As DAO.Recordset
   Set dbs = CurrentDb
   Set qdf = dbs.QueryDefs("z0")
   qdf.Parameters!UltimoAcquisto = 0
 
   Set rst = qdf.OpenRecordset
 
   Me.UltimoValore = rst!UltimoAcquisto
 
   rst.Close
   qdf.Close
 
   Set dbs = Nothing
End Sub
Non riesco a capire perch� mi dice che non trova l'elemento nell'insieme
parameters
Mi aiutate?
Grazie
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 nell'insieme parameters
Sei sicuro che il parametro si chiama esattamente "UltimoAcquisto"?
Posta l'enunciato SQL della query.
-- 
cu
Karl
*********
Access FAQ: 
www.donkarl.com/it
 


SELECT ANAART1.CodArt, ANAART1.Descrizione, ANAART1.UltimoAcquisto
FROM ANAART1;


 FROM ANAART1;
Allora non hai un parametro "UltimoAcquisto" ma un campo
della tabella che si chiamo cos�. � una cosa diversa che non
puoi gestire con l'insieme Parameters. Invece puoi p.e. usare:
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim strSQL As String
strSQL = "SELECT * FROM z0 WHERE UltimoAcquisto = 0"
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(strSQL, dbOpenDynaset)
If Not rst.BOF Then
   Me!UltimoValore = rst!UltimoAcquisto
End If
-- 
HTH



Scusami ma ho fatto un errore nel postarti l'enunciato.....
SELECT ANAART1.CodArt, ANAART1.Descrizione, ANAART1.UltimoAcquisto
FROM ANAART1
WHERE (((ANAART1.UltimoAcquisto)=0));


 WHERE (((ANAART1.UltimoAcquisto)=0));
Non cambia molto. Non si tratta di un parametro ma di un campo
della tabella. Puoi usare un criterio nella query come nel tuo ultimo
enunciato SQL o per il recordset come nel mio esempio o anche
in tutti e due. Dipende cosa ti serve.



Ho inserito il parametro e va bene.
Se nella text box (ultimoacquisto) digito lo zero la routin funziona bene se
digito <>0 mi ritorna l'errore " tipi di dati non corrispondenti
nell'espressione criterio " errore 3446
Mi aiuti?
Private Sub ultimoacquisto1_BeforeUpdate(Cancel As Integer)
Dim dbs As DAO.Database
   Dim qdf As DAO.QueryDef
   Dim rst As DAO.Recordset
 
   Set dbs = CurrentDb
   Set qdf = dbs.QueryDefs("z0")
   qdf.Parameters!valore = Me.ultimoacquisto
   Set rst = qdf.OpenRecordset
 
   Me.UltimoValore = rst!UltimoAcquisto
 
   rst.Close
   qdf.Close
 
   Set dbs = Nothing
End Sub


 End Sub
Si puo usare solo valori come parametro, non operatori.
Per me non ï¿œ chiaro perchï¿œ insisti ad un parametro invece
di usare la soluzione con SQL nel codice che ti ho scritto.
Sarebbe piï¿œ flessibile p.e. puoi controllare se il valore
nella casella di testo ï¿œ solo un numero o invece gestire
un eventuale operatore inserito.


 Access FAQ: 
www.donkarl.com/it
Mi sono incartato credimi...
In poche parole ho bisogno di questo
Query 1
SELECT qryEstConSaldo.SommaDiDare, qryEstConSaldo.SommaDiAvere,
qryEstConSaldo1.SommaDidare, qryEstConSaldo1.SommaDiavere,
nz(nz(qryEstConSaldo.sommadiavere,0)-nz(qryEstConSaldo.sommadidare,0),0)-nz(nz(qryEstConSaldo1.sommadidare,0)-nz(qryEstConSaldo1.sommadiavere,0))
AS totale, qryEstConSaldo.RifNumeroFattura, qryEstConSaldo.RifDataFattura
FROM qryEstConSaldo LEFT JOIN qryEstConSaldo1 ON
qryEstConSaldo.RifNumeroFattura = qryEstConSaldo1.RifNumeroFattura
WHERE
(((nz(nz(qryEstConSaldo.sommadiavere,0)-nz(qryEstConSaldo.sommadidare,0),0)-nz(nz(qryEstConSaldo1.sommadidare,0)-nz(qryEstConSaldo1.sommadiavere,0)))=[forms]![frmEstrattoConto]![Partita]));
Se provo a digitare nella textbox (Partita) della maschera il valore 0 mi
restituisce tutti i saldi a zero, se invece digito nella textbox l'operatore
<>0 la query non mi ritorna nessun record....perch�?
Per questo motivo, volevo capire anche da codice se era possibile passare un
operatore alla query.
Grazie per la tua pazienza
