>'`'`'`'`'`' >'frmBudget' >'`'`'`'`'`' >Option Explicit > >Private Sub DataGrid1_BeforeColUpdate(ByVal ColIndex As Integer, OldValue As Variant, Cancel As Integer) > If DataGrid1.Columns(ColIndex).Value = "" Then > MsgBox DataGrid1.Columns(ColIndex).Caption + " must contain a value" > Cancel = True > Else > If (ColIndex = 1 Or ColIndex = 2) And Not IsDate(DataGrid1.Columns(ColIndex).Value) Then > MsgBox DataGrid1.Columns(ColIndex).Caption + " must contain a valid date" > Cancel = True > ElseIf (ColIndex = 3) And Not IsNumeric(DataGrid1.Columns(ColIndex).Value) Then > MsgBox DataGrid1.Columns(ColIndex).Caption + " must contain a numeric value" > Cancel = True > ElseIf (ColIndex = 3) And DataGrid1.Columns(ColIndex).Value <= 0 Then > 'Do not save the record if no value was entered for the amount > Cancel = True > End If > End If >End Sub > >Private Sub DataGrid1_BeforeUpdate(Cancel As Integer) > If DataGrid1.AddNewMode = dbgAddNewPending Then > If DataGrid1.Columns(1) = "" Or _ > DataGrid1.Columns(2) = "" Or _ > DataGrid1.Columns(3) = "" Then > MsgBox "All values must be entered" + vbCr + "Press [ESC] to cancel Addition of record" > Cancel = True > End If > If Not IsNull(DataGrid1.Columns(3)) Then > If IsNumeric(DataGrid1.Columns(3)) Then > If DataGrid1.Columns(3) <= 0 Then > Cancel = True > End If > End If > End If > End If >End Sub > >Private Sub DataGrid1_Error(ByVal DataError As Integer, Response As Integer) > If DataError = 7011 Then > Debug.Print "DataGrid1_Error -> " + Str(DataError) + ": Not an error just suppress action cancelled msgbox" > Response = 0 > DataGrid1.SetFocus > Else > Debug.Print "DataGrid1_Error -> " + Str(DataError) + ": " + DataGrid1.ErrorText > Response = 1 > End If >End Sub > >Private Sub DataGrid1_OnAddNew() > DataGrid1.Columns(1).Value = FormatDateTime(Str(Year(Date)) + "/3/31", vbShortDate) > DataGrid1.Columns(2).Value = FormatDateTime(Str(Year(Date) + 1) + "/3/31", vbShortDate) >End Sub >