| 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 Function
Nel 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 Sub
Et voilà
|