Newsgroup: it.comp.appl.access
Titolo: Testare se due istanze di recordset puntano allo stesso oggetto

Supponiamo di avere
a msk_01.recordset e
b msk_02.recordset
dove msk_01 e msk_02 sono due maschere access.
Per sapere se a e b sono in realta' due puntatori
("puntatori" per modo di dire ... Quelli mica lavorano
come col C) alla stessa entita' - recordset , come si
deve fare ?
Cosi'  ? :
if msk_01.recordset IS msk_02.recordset then
    msgbox("si, e' lo stesso recordset")
else
    msgbox("no, non e' lo stesso recordset")
endif
Oppure ?
Grazie.

 ha scritto nel messaggio

Ritengo che tu stia sbagliando approccio.
Per la cronaca, non è chiaro se intendi proprio quello che scrivi, cioè due 
variabili che puntano allo stesso recordset, oppure due variabili che 
puntano a due recordset con la stessa origine dati.
Un recordset, infatti, è un oggetto locale del codice che fa riferimento 
agli oggetti remoti "taballe", quindi potresti arire due volte la stessa 
tabella in due recordset diversi che conterranno quindi gli stessi dati 
(almeno all'apertura) quindi avere di fatto due recordset (e due variabili) 
del tutto indipendenti, oppure puoi far puntare due variabili di tipo 
recordset proprio allo stesso recordset, ma in quesco caso dubito che 
avresti il problema che dici poichè è un'operazione che devi eseguire 
esplicitamente nel codice, quindi lo sai da prima se esegui una simile 
assegnazione oppure no.
Detto questo, forse è meglio che spieghi cosa vuoi fare, perchè il tipo di 
problema che proponi non può crearsi in una normale impostazione della 
gestione dati.
Davide (Sib) 

 gestione dati.
Tutto giusto. Sono d' accordo con te.
No guarda e' semplice :
esempio :
dim RC as new adodb.recordset.
dim MSK  as form
dim MSK1  as form
RC.open " ... " , connessione
docmd.openform "Pippo"
docmd.openform "Pluto"
set MSK = forms("pippo")
set MSK.recordset = RC
set MSK1 = forms("pluto")
set MSK1.recordset = RC
ora supponiamo che scriva una routine in
un evento della MSK, e voglia sapere se la
MCK1 abbia ancora *quel* recordset, proprio quello.
(l' utente puo' infatti averla chiusa e riaperta con
un altro recordset, nel frattempo)
E' corretto fare :
if MSK1.recordset IS MSK.recordset then ...
?

 ha scritto nel messaggio 
news:a3ee2c4c-23aa-426b...@x21g2000yqa.googlegroups.com...

forse cosi va meglio?
if MSK1.recordsource = MSK.recordsouce then
   è lo stesso recordset
end if
-- 
Ciao
Geppo
 

 wrote:
Ma quanti radicali hai? Che ne pensi di uno sciampo contro i radicali 
liberi?
CUT
Tutto giusto. Sono d' accordo con te.
No guarda e' semplice :
esempio :
dim RC as new adodb.recordset.
dim MSK  as form
dim MSK1  as form
RC.open " ... " , connessione
docmd.openform "Pippo"
docmd.openform "Pluto"
set MSK = forms("pippo")
set MSK.recordset = RC
set MSK1 = forms("pluto")
set MSK1.recordset = RC
ora supponiamo che scriva una routine in
un evento della MSK, e voglia sapere se la
MCK1 abbia ancora *quel* recordset, proprio quello.
(l' utente puo' infatti averla chiusa e riaperta con
un altro recordset, nel frattempo)
E' corretto fare :
if MSK1.recordset IS MSK.recordset then ...
---------------
Come dice Geppo, prova con l'uguale.
Però resto dell'opinione che a mio avviso è meglio cambiare approccio, è già 
difficile gestire più utenti che accedono agli stessi dati.
Ciao
Davide (Sib)