User form manipulation

  • Thread starter Thread starter Richard Mogy
  • Start date Start date
R

Richard Mogy

From: "Richard Mogy" <[email protected]>
Subject: Re: User Form maneuvering
Date: Thursday, May 06, 2004 6:59 AM

Thanks to those who replied. I apologize for not including the code. I
have used the setfocus command, here's basically what the screen looks like

Enter Start Date:
Enter End Date:
Enter Office:
Enter Start Account:
Enter End Account:

Process End

Using these after updates in the "End Date" and "End Account", if the error
is in the end date, focus goes to "Start Account". If the error is in the
End Account, focus goes to the "END" command button.

Here's the code

Private Sub TxtDateTo_afterupdate()
date1 = Format(TxtFromDate.text, "mm/dd/yyyy")
date2 = Format(TxtDateTo.text, "mm/dd/yyyy")
If date2 < date1 Then
Me.TxtFromDate.SetFocus
TxtDateTo.text = ""
TxtFromDate.text = ""
TxtMessage.text = "End Date must be greater than or equal start date"

End If

End Sub




Private Sub txtEndAccount_afterupdate()
acct1 = txtStartAccount.text
acct2 = txtEndAccount.text

If acct2 < acct1 Or Len(acct2) < 5 Or Len(acct1) < 5 Then
Me.txtStartAccount.SetFocus
txtStartAccount.text = ""
txtEndAccount.text = ""
TxtMessage.text = "End Account must be greater than or equal start
Account"
End If

End Sub
 
Hi

I suggest you put it in the Exit events instead, there you can use the
Cancel parameter.
Also, allow me to suggest some adjustments in the date assignments, allowing
user entries in all usual date formats:

Private Sub TxtFromDate_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim date1 As Date
If IsDate(TxtFromDate.Text) Then
date1 = DateValue(TxtFromDate.Text)
TxtFromDate.Text = Format(date1, "mm/dd/yyyy")
Else
TxtFromDate.Text = ""
End If
End Sub

Private Sub TxtDateTo_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim date1 As Date, date2 As Date
If IsDate(TxtFromDate.Text) Then
date1 = DateValue(TxtFromDate.Text)
TxtFromDate.Text = Format(date1, "mm/dd/yyyy")
Else
TxtFromDate.SelStart = 0
TxtFromDate.SelLength = Len(TxtFromDate.Text)
TxtFromDate.SetFocus
End If
If IsDate(TxtDateTo.Text) Then
date2 = DateValue(TxtDateTo.Text)
TxtDateTo.Text = Format(date2, "mm/dd/yyyy")
Else
TxtDateTo.SelStart = 0
TxtDateTo.SelLength = Len(TxtDateTo.Text)
TxtDateTo.SetFocus
End If
If date2 < date1 Then
TxtMessage.Text = "End Date must be greater than or equal start date"
TxtDateTo.SelStart = 0
TxtDateTo.SelLength = Len(TxtDateTo.Text)
Cancel = True

End If
End Sub

HTH. Best wishes Harald
 
Thank you very much. The only think I would have liked would have been if
the cursor had gone to the start date box instead of the end date box, but I
can work with it.
 
Hi

You might try
TxtFromDate.SetFocus
instead of the Cancel = True stuff. If one of them is wrong, who can tell if
it's the From or the To ?

Best wishes Harald
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Back
Top