Having issues with .SetFocus after msgbox...

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!
 
J

JLatham

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.
 
D

Doug Glancy

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

Top