Ci sono diversi eventi nelle dbgrid che possono rivelarsi utili per controllare i valori immessi nei campi, tipo:

Private Sub DBGrid1_BeforeColUpdate (ByVal ColIndex As Integer, OldValue As Variant, Cancel As Integer)

End Sub
Questo evento si scatena dopo che è stato modificato il valore nella
cella e prima dell'update. Quindi puoi controllare se è stato messo null o spaces in un campo numerico.

ColIndex = indice cella
oldvalue = vecchio valore
Cancel = True o 1 (ripristina il valore precedente)
DBGrid1.Columns(ColIndex).Value = attuale valore della cella

E poichè la dbgrid è normalmente associata ad un controllo data puoi verificare gli attributi del campo in questo modo:

If Data1.Recordset(ColIndex).Type = dbLong and (IsNull(DBGrid1.Columns(ColIndex).Value) Or (DBGrid1.Columns(ColIndex).Value) = "") Then
Msgbox("Valore errato"),VbCritical,"ATTENZIONE"
Cancel = 1

End If
In questo modo non dovrebbe darti più errore.
Tieni presente che esiste per la DBGrid anche l'evento error per intercettare gli errori della griglia.

Ciao