Having issues with .SetFocus after msgbox...

  • Thread starter Thread starter Shaka215
  • Start date Start date
S

Shaka215

Hello fellow programmers!

If TextBox1.Value = "" Then
MsgBox "You have not confirmed the Information." & vbNewLine & "Please
type the Information in both boxes.", , " - Information Error - "
With TextBox1
..SetFocus
End With
Exit Sub
End If

If TextBox2.Value = "" Then
MsgBox "You have not confirmed the Information." & vbNewLine & "Please
type the Information in both boxes.", , " - Information Error - "
With TextBox2
..SetFocus
End With
Exit Sub
End If

If TextBox2.Value > TextBox1.Value Then
MsgBox "The Informations you have entered do not match. Please try
again.", , " - Information Error - "
With TextBox1
..SetFocus
End With
Exit Sub
End If

If TextBox1.Value < TextBox2.Value Then
MsgBox "The Informations you have entered do not match. Please try
again.", , " - Information Error - "
With TextBox2
..SetFocus
End With
Exit Sub
End If

The message box displays twice and the SetFocus doesn't work...any
ideas? Your help is much appreciated!
 
I presume the code is attached to a command button on a form?

This works for me in such a situation:
Private Sub CommandButton1_Click()
If TextBox1.Value <> TextBox2.Value Then
MsgBox "The entered values do not match"
TextBox1.SetFocus
Exit Sub
End If
If TextBox1 = "" Or TextBox2 = "" Then
MsgBox "You have not verified the inputs"
If TextBox1 = "" Then
TextBox1.SetFocus
Else
TextBox2.SetFocus
End If
End If
End Sub

By the way,
If TextBox2.Value > TextBox1.Value
and
If TextBox1.Value < TextBox2.Value

is the same test,
If TextBox1.Value <> TextBox2.Value
takes care of inequality in either direction in one test.
 
You don't say which message is displayed twice and which textbox you expect
to get the focus, but here's some comments:

If TextBox2.Value > TextBox1.Value
is the same as
If TextBox1.Value < TextBox2.Value

I assume you meant to test if one was either greater than or less than the
other. If that's so why not just test if they are not equal:
If TextBox1.Value <> TextBox2.Value

Also, I think you want to turn all of your code into one If, Else, Endif
statement, like this:

If TextBox1.Value = "" Then
....
ElseIf TextBox2.Value = "" Then
....
ElseIf TextBox1.Value <> TextBox2.Value
....
EndIf

hth,

Doug
 

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

Back
Top