[AccessD] Set Focus On Control When Validation Fails

Rocky Smolin - Beach Access Software bchacc at san.rr.com
Mon Mar 10 10:32:00 CST 2003


John:

Turns out my results were not as weird as my programming.  I had an error in
the ValidationTests function.  I wasn't returning False from the function on
the fields that failed to work correctly when their validation test failed.
Fixed it and now the code below works correctly on all fields.  Yours should
work as well. Does your BeforeUpdate event not work?  (You don't, I think,
need the .SetFocus).

With much egg on face,

Rocky Smolin
Beach Access Software

----- Original Message -----
From: "Rocky Smolin - Beach Access Software" <bchacc at san.rr.com>
To: <accessd at databaseadvisors.com>
Sent: Monday, March 10, 2003 8:15 AM
Subject: Re: [AccessD] Set Focus On Control When Validation Fails


> John:
>
> My result is weirder than yours.  I have seven fields I put the validation
> code into the BeforeUpdate event (no need for .SetFocus, because the focus
> *in theory* never goes away from the control).
>
> I have a bunch of validation tests in a function:
>
> Private Sub txtBarCodePrefix_BeforeUpdate(Cancel As Integer)
>     If ValidationTests = False Then Cancel = True
> End Sub
>
> Works on three, fails on four.  And I can't see ANY differences between
the
> three that work and the four that don't.  Could it be timing problem in
the
> event sequence?  Maybe I'll try putting a delay loop in the BeforeUpdate
> event, see if that changes anything.
>
> Rocky Smolin
> Beach Access Software
>
> ----- Original Message -----
> From: "John Clark" <John.Clark at niagaracounty.com>
> To: <accessd at databaseadvisors.com>
> Sent: Monday, March 10, 2003 7:19 AM
> Subject: Re: [AccessD] Set Focus On Control When Validation Fails
>
>
> > How weird...I am working on the exact same problem. I noticed that a
> > program that I am about to roll out accepts any date, in the many date
> > fields. Some of the dates need to be later than others that are there
> > (for instance, there is a "Sent to Sheriff" field, and a "Returned from
> > Sheriff" field, and you cannot receive it before it is sent).
> >
> > I used the code:
> >
> > If datFromSheriff.Value < datToSheriff.Value Then
> >     MsgBox "This date cannot be previous to the Sent to Sheriff Date",
> > vbOKOnly, "Date Error"
> >     datFromSheriff = ""
> >     datFromSheriff.SetFocus
> > End If
> >
> > And I have tried it in the "On Lost Focus", "On Change" (stupid),
> > "Before Update" (there now), and "After Update" events, but none worked.
> > It actually worked with "Lost Focus" but the SetFocus did not...it went
> > to the next field in the tab order.
> >
> > Did you get this working?
> >
> > John Clark
> >
> >
> > >>> bchacc at san.rr.com 03/09/03 01:45PM >>>
> > Dear List
> >
> > I have a couple of simple validation tests:
> >
> >     If Not IsNumeric(Nz(txtStartingRoomNumber)) Then
> >         MsgBox "Starting Room Number Must Be Numeric.", vbExclamation
> >         txtStartingRoomNumber.SetFocus
> >         Exit Sub
> >     End If
> >
> >     If Val(Nz(txtStartingRoomNumber)) > 9999999 Then
> >         MsgBox "Starting Room Number Must Be Less Than 7 Digits.",
> > vbExclamation
> >         txtStartingRoomNumber.SetFocus
> >         Exit Sub
> >     End If
> >
> > in the AfterUpdate event of txtStartingRoomNumber.  But the SetFocus
> > does not work.  The focus ends up being set on the next control in the
> > tab sequence.  I tried the tests in the Lost Focus event with the same
> > result.
> >
> > I know there must be a simple way to return the focus to the control
> > but I can't see it. (Maybe I shouldn't work on Sunday but the kids are
> > in Sunday school and it's quiet.) :)
> >
> > MTIA,
> >
> > Rocky Smolin
> > Beach Access Software
> > _______________________________________________
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
>
>
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>





More information about the AccessD mailing list