Spero di non commettere errori nel riaprire questo post vecchio ormai di 8 mesi, ma l'argomento e' lo stesso perche' sto riscontrando un problema che non riesco a risolvere.
Riepilogo lo scenario: ho una form con un controllo a schede, in una delle schede e' collocata una subform in cui ho due controlli textbox su cui eseguo il controllo ortografico su evento Exit. La function che esegue il controllo ortografico e' quella suggerita da Stifone:
Public Function ControlloOrtografico(ctl As Control)
On Error GoTo Err_handler
DoCmd.SetWarnings False
With ctl
.SetFocus
If Len(.Value & vbNullString) > 0 Then
.SelStart = 1
.SelLength = Len(.Value)
DoCmd.RunCommand acCmdSpelling
.SelLength = 0
End If
End With
DoCmd.SetWarnings True
Exit_Err_handler:
Exit Function
Err_handler:
MsgBox Err.Number & " " & Err.Description
Resume Exit_Err_handler
End Function
E viene richiamata in modo analogo su entrambi i controlli nel modo seguente :
Private Sub sfrmRCctrMEMOtabRCdescrizionelavoro_Exit(Cancel As Integer)
On Error GoTo Err_handler
ControlloOrtografico Me.sfrmRCctrMEMOtabRCdescrizionelavoro
Exit_Err_handler:
Exit Sub
Err_handler:
MsgBox Err.Number & " " & Err.Description
Resume Exit_Err_handler
End Sub
Il problema che ho notato e' che, se rimane attivo il focus su uno di questi due controlli, mi sposto nella scheda della form principale e scorro i records (o esegui una ricerca), Access esegue il controllo ortografico su tutti i controlli della form attiva (pur non avendo un evento associato alla function), impiegando diversi minuti e bloccando il DB.
Come potrei risolvere?