Newsgroup: it.comp.appl.access
Titolo: OT: help su codice VBA posizionati su_IDMil... con aggiunta di imposta valore su controllo non associato.

Access 2003/2010
 
Ciao, spero che Marco Pizzamiglio e/o Bruno Campanini leggano questo post.
 
Due form indipendenti (non sincronizzate) sono ospitate da una terza form 
solo per un questione di visualizzazione unica.
 
ogni form contiene un controllo chiamato "FiltroMese" ed uno 
chiamato"FiltroAnno".
 
Il codice nato da un aiuto di Marco Pizzamiglio, permette su doppio click 
sul controllo della seconda form (sono presenti 31 controlli pari ai gg del 
mese) di posizionarsi sull'IDMilitare della prima form.
essendo indipendenti le due form, succede, per esempio, che se la seconda 
form è filtrata per il mese di maggio 2013 e la prima form è filtrata per il 
mese di giugno, giustamente non avviene il posizionamento sul militare 
corrispondente. Chiaramente ho provato senza riuscirci ad aggiungere una 
riga di codice per un set focus sul controllo FiltroMese, in modo da fargli 
prima impostare il valore mese (numerico) uguale al filtroMese della seconda 
form e poi farlo posizionare sul militare.
 
Grazie, per l'aiuto.
Bruno
 
 
La seguente Sub si trova nella prima form.
 
 
Public Sub Posizionati_su(IDmilitare As Long, Giorno As Date)
    Me.RecordsetClone.FindFirst "Id_Mil=" & IDmilitare & " And Data=#" & 
Format(Giorno, "yyyy-mm-dd") & "#"
    If Not Me.RecordsetClone.NoMatch Then
        Me.Bookmark = Me.RecordsetClone.Bookmark
        Me.Data.SetFocus
    End If
End Sub
 
 
 
Il seguente codice si trova nella seconda form.
 
Private Sub Ctl01_DblClick(Cancel As Integer): 
Me.Parent!frm_141_Servizi.Form.Posizionati_su Me.Id_Militare, Me.gg01: End 
Sub
 
 
 

Bruno - S95 ha scritto:

Prima di cercare il record puoi verificare che il mese sia lo stesso e 
casomai reimpostarlo
 
Public Sub Posizionati_su(IDmilitare As Long, Giorno As Date)
 
IF ME.FiltroMese<>Me.Parent!NomeSecondaForm.Form!FiltroMese then
   ME.FiltroMese=Me.Parent!NomeSecondaForm.Form!FiltroMese
   FiltroMese.AfterUpdate 
end if
 
    Me.RecordsetClone.FindFirst "Id_Mil=" & IDmilitare & " And Data=#" & 
Format(Giorno, "yyyy-mm-dd") & "#"
    If Not Me.RecordsetClone.NoMatch Then
        Me.Bookmark = Me.RecordsetClone.Bookmark
        Me.Data.SetFocus
    End If
End Sub
 
Ciao.
-Marco-
 
 
-- 
 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
 
 
 

 ha scritto nel messaggio 
news:kr3eik$9g1$1...@news.newsland.it...

^^^^^^^^^^^^
 
Ciao Marco, ancora grazie per l'aiuto.
 
Ho provato il codice da te postato, pur avendo fatto diversi tentativi 
comprese le stesse righe di codice, senza riuscire. Infatti anche questa 
volta, pur cambiando il valore FiltroMese, poi non andata sul militare. 
Visto che la form è basata su Query, mi son reso conto che i record non 
cambiavano per il mese impostato, pertanto ho inserito un requery ed 
eliminato "FiltroMese.AfterUpdate" perchè mi diceva che non era suportato, 
dandomi errore. Ora funziona alla grande. Sai che comodità non dover 
cambiare il mese ogni santa volta.
Ecco il codice corretto.
 
Ciao, Bruno
 
Public Sub Posizionati_su(IDmilitare As Long, Giorno As Date)
 
    If Me.FiltroMese <> Me.Parent![Servizi_CI_MeseCorrente].Form!FiltroMese 
Then
       Me.FiltroMese = Me.Parent![Servizi_CI_MeseCorrente].Form!FiltroMese
       'FiltroMese.AfterUpdate
       Me.Requery
    End If
