Newsgroup: it.comp.appl.access
Titolo: Parametri per OpenRecordset

Sto usando una funzione che, in base al contenuto di una query, mi
restituisce un determinato valore.
Nella funzione faccio uso del metodo OpenRecordset con una riga del tipo
 set rst1=currentdb.Openrecordset ("MiaQuery")
Ho notato che la funzione "funziona" (scusate il gioco di parole) se
MiaQuery č filtrata con un valore assegnato in modo statico (ad esempio
MioCampo=566) oppure se OpenRecordset  fa riferimento ad una tabella.
Se, invece, la query č legata al valore corrente sulla maschera (ad esempio
MioCampo=forms!MiaMaschera!MioControllo) la funzione mi restituisce errore
3061, con questo commento: Parametri insufficienti. Previsto 1.
Quale parametro manca?
Grazie
Salvatore

 ha scritto nel messaggio
news:bqdgou$k93$1...@lacerta.tiscalinet.it...

Di solito ti presenta quell'errore se hai sbagliato il nome del controllo o
la maschera č chiusa; hai comunque una alternativa per ottenere un recordset
filtrato dinamicamente:
es.
set rst1=currentdb.Openrecordset ("Select nome, cognome From Anagrafica
Where [id]=" & Me!id)
Ciao.

 ha scritto nel messaggio
news:bqf203$9ei$1...@canarie.caspur.it...

Ciao, Sergio
grazie del consiglio.
In ogni caso la maschera č aperta. L'errore lo genera ogni volta che si usa
una query parametrica, qualunque sia il parametro (cioč, sia se č legato
alla maschera sia se dipende da un parametro "libero").
Ciao
Salvatore

 Salvatore
Invia il codice SQL della query...
Ciao.
--
Sergio MAZZA

 Sergio MAZZA
Ecco qua:
SELECT Saldatori.IDControllo, Saldatori.Posizione
FROM Saldatori
WHERE
(((Saldatori.IDControllo)=[Forms]![LineeSaldatureEControlli]![TutteLeSaldatu
re].[Form]![Assegnazioni].[Form]![IDAssegnazione]))
WITH OWNERACCESS OPTION;
la riga relativa a where è piuttosto lunga perchè fa riferimento ad una
sottomaschera di sottomaschera. In ogni caso, anche se la scrivo in questo
modo:
SELECT Saldatori.IDControllo, Saldatori.Posizione
FROM Saldatori
WHERE ((Saldatori.IDControllo)=[inserire ID])
WITH OWNERACCESS OPTION;
cioè faccio riferimento ad un parametro da inserire su richiesta, il
messaggio di errore rimane.
Grazie al tuo consiglio ho risolto il problema, ma non riesco a capire dove
sta l'errore.
Ciao
Salvatore

 Salvatore
Non avevo capito che avevi risolto; non ho mai utilizzato "catene" di
subform, mi fermo alla prima.
Per quanto riguarda l'errore della riga: WHERE
((Saldatori.IDControllo)=[inserire ID]), ho provato a ricreare il tuo
esempio e a me funziona... Mah!
Ciao.
--
Sergio MAZZA


Puoi postarmi il codice che hai utilizzato?
Grazie
Salvatore


SELECT TemaDelMese.idRivista
FROM TemaDelMese
WHERE (((TemaDelMese.idRivista)=[inserisci l'id]));
Se ti riferivi all'SQL...
Ciao.
--
Sergio MAZZA

 ha scritto nel messaggio
news:bqdgou$k93$1...@lacerta.tiscalinet.it...

Per aprire un recordset su una query parametrica č necessario passare i
parametri alla query al momento dell'apertura del recordset.
Per maggiori dettagli vai sul Sito Comune e nella Sezione Queries leggi la
FAQ di Federico Luciani intitolata "Aprire una query parametrica da codice
VBA.".
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Grazie, Roberto.
Ciao
Salvatore