Ciao, per quanto riguarda il fatto di bloccare le textbox potresti seguire i consigli che ti hanno dato impostando la proprietà Locked=true, anche se, considerando che quando carichi i dati gli eventi che usi per l'inserimento si possono scatenare... forse, anche se comporta più lavoro, per la visualizzasione ti converrebbe usare delle label impostando il bordo a 3D..comunque sono gusti, vedi tu.
Per visualizzare l'ultimo record inserito, li dipende molto da come apri la tabella, se usi una query potresti impostare l'ordine sulla data di estrazione in modo decrescente, altrimenti quando apri la tabella fai un MoveLast tramite la proprietà del recordset.
Se vuoi permettere l'inserimento dello zero e anche ripetuto sulla stessa riga allora devi fare alcune modifiche:
codice:
Private Function CheckNumber(indexTxt As Integer) As Boolean
....
For i = idxTxt To (idxTxt + 4)
If (Not i = indexTxt) and (not val(Text1(i).Text)=0) Then
If Text1(i).Text = Text1(indexTxt) Then
CheckNumber = True
Exit For
End If
End If
Next
....
End Function
Private Sub Text1_Validate(Index As Integer, Cancel As Boolean)
'attenzione, la proprietà Maxlength delle textBox relative alle estazione, deve essere impostata a 2
If Len(Trim(Text1(Index).Text)) > 0 Then
If Len(Text1(Index).Text) = 1 Then
Text1(Index).Text = "0" & Text1(Index).Text
End If
If Val(Text1(Index).Text) < 0 Or Val(Text1(Index).Text) > 90 Then
MsgBox "L'estrazione deve essere compresa tra 0 e 90"
Text1(Index).Text = ""
Cancel = True
ElseIf CheckNumber(Index) Then
MsgBox "Il numero [" & Text1(Index) & "] è già inserito!"
Text1(Index).Text = ""
Cancel = True
End If
End If
End Sub
Le modifiche sono quelle in rosso... controlla magari meglio.. non le ho testate..