Newsgroup: it.comp.appl.access
Titolo: RecordsetClone: tipo non corrispondente?!

Ciao a tutti,
è da un po' che vi leggo ma è la prima volta che vi scrivo, quindi
approfitto dell'occasione per ringraziare di cuore i guru ed i
frequentatori assidui di questo NG: nella mia breve esperienza con
Access siete già stati fonte di numerosi spunti ed illuminazioni! ;-)
Ad ogni modo, come sarà presto palese :-P, di strada ne ho ancora molta
da fare, e infatti ho giusto un problemino da sottoporvi che mi sta
facendo sbroccare: assegnando in VB l'oggetto Recordset di una maschera
ad una variabile di tipo Recordset, puntualmente mi salta fuori il
messaggio di "Errore di run-time 13: Tipo non corrispondente". Per
spiegarmi meglio, ecco un esempio di codice (inserito all'interno di un
modulo di una maschera):
Dim rst As Recordset
    Set rst = Me.Recordset
Ovviamente la stessa cosa avviene anche utilizzando RecordsetClone al
posto di Recordset, o Screen.ActiveForm al posto di Me (le ho provate
tutte...).
Qualcuno sa spiegarmi il perchè del suddetto errore? Codice
praticamente uguale si trova anche in svariati esempi della guida di
Access, ma io non sono riuscito a farlo funzionare in nessun modo :-(
Grazie 1000 in anticipo!
Ciao.

 ha scritto nel messaggio
news:q6u3rtgtug1nsihok...@4ax.com...

Penso che il problema sia questo, quando tu dimensioni il recordset con Dim
rst As Recordset access prepara un recordset che è del tipo che appare per
primo nell'elenco dei riferimenti se stai utilizzando Access 2000 si tratta
di ADO ma poi se recuperi il recordset della maschera sia con recordsetclone
che con me.recordset access restituisce un recordset dao e quindi ovviamente
ti da l'errore di tipi non corrispondenti, purtroppo non c'è modo di
recuperare un recordseclone ADO in un database access e quindi devi;
1) Verificare che nei riferimenti sia selezionata la voce microsoft DAO 3.6
object library
2) quando usi dim scrivere Dim rst as Dao.Recordset
così quando recupererai il recordset della maschera access trovera la
corretta variabile e tutto funzionerà
Ciao

corretta variabile e tutto funzionerà
Ecco dove stava l'inghippo: non so perchè :-) ma io ero convinto che
A2000 restituisse di default oggetti ADO (e infatti avevo provato anche
esplicitando "Dim rst As ADODB.Recordset") e non DAO!
GRAZIE 1000! :-)
Ciao.

 esplicitando "Dim rst As ADODB.Recordset") e non DAO!
Assendo un amante di ADO (eh sě, ci diamo appuntamento in albergo almeno una
volta a settimana :-), preferisco evitare il piů possibile di usare DAO.
Ho notato una cosa.
Ho un'applicazione A2000. Nei riferimenti ho solo ADO. Creo una maschera
associata ad un recordset e inserisco, con l'autocomposizione, una combobox.
Nell'autocomposizione scelgo di effettuare una ricerca all'interno del
recordset (terza opzione, se non erro).
Access crea il tutto, compreso il codice con il famoso recorsetclone (o
recordset.clone... non ricordo).
Andando a vedere il codice noto queste cose:
1. L'oggetto recordset non č un "DAO.Recordset" ma un semplice "Object"
2. Nei riferimenti non compare DAO.
3. Funziona :-)

"koo" <koo@k.k> ha scritto nel messaggio news:9ouinl$e8v$1...@serv1.iunet.it...

Funziona perche dimensionando un object l'assegnazione la fa al momento
dell'utilizzo il problema che questo richede uno spreco di risorse, se si
puo conviene dichiarare correttamente la variabile oggetto
ciao