Newsgroup: it.comp.appl.access
Titolo: Problema con posizionamento record

ciao a  tutti. ho un form base dal quale con un pulsante ne apro un
secondo che mi fa vedere un elenco di record che rispondono ad un
filtro. poi seleziono sulla griglia uno di questi record ed ho il
valore della chiave primaria della tabella che compone il form
principale. la domanda é:
come faccio dopo la selezione a chiudere il form secondario e
posizionarmi nel form principale sul record selezionato?
grazie.
--enrico

 ha scritto nel messaggio 
news:1163437593.7...@m73g2000cwd.googlegroups.com...

se ho ben capito, potresti utilizzare il metodo findfirst del recordsetclone della maschera 
principale, che ti restituirà l'absoluteposition del record che tu vuoi visualizzare. Una volta 
trovato il record(nomatch=false), muovi il recordset di maschera (metodo move) in maniera che esso 
assuma la stessa posizione del clone. E sarai sul record voluto.
Michele


Lavorando direttamente sul recordset invece che sul recordsetclone non 
credi che fa' prima?
-- 
ac
email: w+1=x

 ha scritto nel messaggio 
news:F436h.4887$mZ5....@tornado.fastwebnet.it...

Si beh, è vero, io uso questo sistema in maniera da non muovere il recordset di maschera inutilmente 
in caso di esiti di ricerca negativi. 

...approfitto della tua cortesia. mi spiego meglio:
quando io clicco nel secondo form sulla lista di record testo
ovviamento l'evento
(nome lista)_DblClick
e a questo punto inizia il mio problema perché dovrei chiudere il form
secondario e fare le operazioni
di spostamento record su quello principale ma non sò dove collocare
queste operazioni.
in concreto se tutto si svolgesse sullo stesso form ho visto che mi
basterebbe semplicemente questo:
Form_Pratiche.ID_Pratica.SetFocus
    DoCmd.FindRecord (n° ID_Pratica)
ed il form principale si sposta sul record che voglio io...
il problema é appunto che questi comandi io li devo dare dopo il
doppio click dato sulla lista del form secondario passandogli il valore
di ID_Pratica...
riesci gentilmente a darmi ancora due dritte?
grazie mille.
--enrico
Michele (Giò) ha scritto:


 ha scritto nel messaggio 
news:1163492174.0...@k70g2000cwa.googlegroups.com...
............................
il problema é appunto che questi comandi io li devo dare dopo il
doppio click dato sulla lista del form secondario passandogli il valore
di ID_Pratica...
riesci gentilmente a darmi ancora due dritte?
grazie mille.
--enrico
Ogni oggetto sito in una maschera ha una proprietà "Parent" che rappresenta il genitore per così 
dire. La proprietà parent di una sottomaschera, rappresenta la maschera principale che la contiene.
Per cui tu puoi effettuare opearzioni dalla sottomaschera orientate alla maschera principale.
Prova a fare una cosa di questo tipo. Dati:
CtrlSubFrm  controllo della sottomaschera che contiene il valore da trovare sulla maschera 
principale e sul quale farai double click
e
CtrlFrm controllo della maschera principale associato ad un ipotetico campo di nome "Fld1"
 --------------------------------------------
Private Sub CtrlSubFrm_DblClick
Me.Parent.Form.RecordsetClone.Movefirst
'se il tipo campo è string usi
Me.Parent.Form.RecordsetClone.FindFirst "Fld1=""" & Me!CtrlSubFrm.Value & """"
'se è numerico usi
Me.Parent.Form.RecordsetClone.FindFirst "Fld1=" & Me!CtrlSubFrm.Value
If Not Me.Parent.Form.RecordsetClone.NoMatch Then
    Me.Parent.Form.Recordset.Move (Me.Parent.Form.RecordsetClone.AbsolutePosition - 
Me.Parent.Form.Recordset.AbsolutePosition)
Else
    msgbox "Errore. Corrispondenza non trovata.",vbokonly,"Attenzione"
End If
End Sub
---------------------------------------------
Sostituisci il nome controllo e il nome campo della maschera principale con i tuoi, elimina una 
delle due righe che non ti serve (a seconda del tipo dati che hai) e dovrebbe funzionare. Questa è 
una fac simile di quella che uso io, solo che non ho mai provato a pilotare una maschera da una 
sottomaschera con il metodo move.
Fammi sapere
Michele 

 ha scritto nel messaggio


 ha scritto nel messaggio 
news:1163580269....@m73g2000cwd.googlegroups.com...
comunque mi interessa anche la tua soluzione ma provando mi sono
fermato quasi subito perché quando scrivo il comando Me.Parent, il
.Form che dovrei mettere dopo non me lo accetta ed infatti quando
scrivo Me.Parent. non me lo propone...
grazie, ciao.
--enrico
Sapessi cose che ci sono che non vengono proposte dall'editor ma che poi vanno alla grande....
Se metti un punto di interruzione sull'evento dblclick (F9 sulla riga iniziale) e fai eseguire riga 
per riga tramite F8, aprendo con Visualizza>Finestra variabili locali, vedrai che Me, che 
rappresenta la tua sottomaschera, avrà come proprietà proprio Parent.
Comunque te provala lo stesso così com'è, cambiando ovviamente i vari nomi, e vediamo di falra 
funzionare sta routine.
Michele