Forms |
3.32 Spostarsi all'interno di una sottomaschera in modalità maschere continue. |
Antonio Biso |
Supponiamo che invece di adottare una soluzione con una maschera principale a maschere continue, si utilizzi una sottomaschera a maschere continue. Supponiamo che ci si voglia spostare su un particolare record della sottomaschera. Questo potrebbe essere utile quando uno deve validare i dati inseriti nella sottomaschera e, qualora ci sia un'anomalia in uno dei record, si voglia evidenziare proprio quello all'utente, spostandocisi sopra. La prima attività da fare è individuare l'anomalia (se c'è) e il numero di record incriminato. Si può fare così (righe è il nome del controllo sottomaschera) Public Function cerca_anomalia() As Long Dim rst As Recordset Dim cont As Long Set rst = Me!righe.Form.RecordsetClone rst.MoveFirst cont = 1 Do Until rst.EOF If controllo(rst) = "Errore!" Then MsgBox "E' presente l'anomalia ??? sul record evidenziato" cerca_anomalia = cont Exit Function End If rst.MoveNext cont = cont + 1 Loop cerca_anomalia = 0 End FunctionNel clic del pulsante di validazione si chiamerà la funzione e se non restituisce zero si segnalerà l'errore spostandosi. Private Sub Valida_Click() Dim num_record As Long '.... num_record = cerca_anomalia If num_record = 0 Then MsgBox "Dati validati" Valida_Salva_Esci Else righe.SetFocus righe.Form.RecordsetClone.MoveFirst righe.Form.RecordsetClone.Move num_record - 1 righe.Form.Bookmark = righe.Form.RecordsetClone.Bookmark End If End SubEt voilà |