Devi sapere che sono un COBOLista ed ho imparato VB da autodidatta.
La soluzione che Ti do non è bella, forse ci sono soluzioni tecniche mirate e più eleganti, ma funziona.
Le mie TextBox sono indicizzate per consentirmi Routines di controlli di validità dei valori quasi parametriche e la possibilità di usare le frecce per spostarmi da un campo all'altro.Quindi Il problema della GotFocus del controllo con TabIndex successivo è stato per me significativo.
Alla fine uso una variabile Booleana che attivo alla possibile perdita di fuoco che impedisce azioni al campo succcessivo; nell'esempio:
Option Explicit
Dim bSetFocus As Boolean
Private Sub CboCategoria_LostFocus()
Dim Esistevalore As Boolean
Esistevalore = False
rs.Source = "SELECT distinct categoria FROM tblcategoria"
rs.ActiveConnection = cn
rs.Open
Do Until rs.EOF
If RTrim$(CboCategoria.Text) = RTrim$(rs.Fields("categoria")) Then
Esistevalore = True
Exit Do
End If
rs.MoveNext
Loop
rs.Close
If Not Esistevalore Then
bSetFocus = True
MsgBox "Valore inesistente"
CboCategoria.SetFocus
End If
End Sub
Private Sub Combo1_GotFocus()
If bSetFocus Then
bSetFocus = False
Exit Sub
End If
End Sub
Fammi sapere
Saluti