Discussion:
macro help
(too old to reply)
mick
2010-06-03 11:36:09 UTC
Permalink
I have a "customers input form" for entering name, address, ref no.,
etc.
I have an "order form" with a text box into which can be manually
entered a customer reference number when needed. Next to the box is a
button that when activated opens the "customers input form" displaying
the customer details.
The macro for the button is:
OpenForm
form name, customers input
where condition, ="[CRN]=" & [CRN]

This works fine, except when the button is activated and there is
nothing in the text box, there is then a syntax error and the macro has
to be stopped manually.

Question is; what do I need to add to the macro to prevent the error
happening when the text box is empty and the button is activated?

Thanks.
--
mick
tighe
2010-06-03 19:58:26 UTC
Permalink
mick.

i have to admit i dont use the where condition(it might be where the quotes
are) but you could handle this On Load of the "customers input form" with vba:

Sub Form_Load()
If IsLoaded("[order form]") = True Then
me.filter="[CRN]=" & forms.[order form].[CRN] 'still might have to adjust
quotes
Me.filterOn=true
else: me.filteron=false
End If
end sub
make sure to turn filter on load to yes
Post by mick
I have a "customers input form" for entering name, address, ref no.,
etc.
I have an "order form" with a text box into which can be manually
entered a customer reference number when needed. Next to the box is a
button that when activated opens the "customers input form" displaying
the customer details.
OpenForm
form name, customers input
where condition, ="[CRN]=" & [CRN]
This works fine, except when the button is activated and there is
nothing in the text box, there is then a syntax error and the macro has
to be stopped manually.
Question is; what do I need to add to the macro to prevent the error
happening when the text box is empty and the button is activated?
Thanks.
--
mick
.
KenSheridan via AccessMonster.com
2010-06-03 20:24:00 UTC
Permalink
Rather than using a macro put the following code in the button's Click event
procedure:

Const MESSAGETEXT = "No customer reference number entered."
Const FORMNAME = "Customers Input"

Dim strCriteria As String

strCriteria = "CRN = " & Me.CRN

If Not IsNull(Me.CRN) Then
DoCmd.OpenForm FORMNAME, _
WhereCondition:=strCriteria
Else
MsgBox MESSAGETEXT, vbExclamation, "Invalid Operation"
End If

If you are not familiar with entering code in event procedures this is how
it's done:

1. Select the control and open its properties sheet if it's not already open.


2. Select the On Click event property and select the 'build' button (the one
on the right with 3 dots).

3. Select Code Builder in the dialogue and click OK. This step won't be
necessary if you've set up Access to use event procedures by default.

4. The VBA editor window will open at the Click event procedure with the
first and last lines already in place. Enter or paste in the code as new
lines between these.

Ken Sheridan
Stafford, England
Post by mick
I have a "customers input form" for entering name, address, ref no.,
etc.
I have an "order form" with a text box into which can be manually
entered a customer reference number when needed. Next to the box is a
button that when activated opens the "customers input form" displaying
the customer details.
OpenForm
form name, customers input
where condition, ="[CRN]=" & [CRN]
This works fine, except when the button is activated and there is
nothing in the text box, there is then a syntax error and the macro has
to be stopped manually.
Question is; what do I need to add to the macro to prevent the error
happening when the text box is empty and the button is activated?
Thanks.
--
Message posted via AccessMonster.com
http://www.accessmonster.com/Uwe/Forums.aspx/access-gettingstarted/201006/1
mick
2010-06-04 22:07:48 UTC
Permalink
Post by KenSheridan via AccessMonster.com
Rather than using a macro put the following code in the button's Click event
Const MESSAGETEXT = "No customer reference number entered."
Const FORMNAME = "Customers Input"
Dim strCriteria As String
strCriteria = "CRN = " & Me.CRN
If Not IsNull(Me.CRN) Then
DoCmd.OpenForm FORMNAME, _
WhereCondition:=strCriteria
Else
MsgBox MESSAGETEXT, vbExclamation, "Invalid Operation"
End If
If you are not familiar with entering code in event procedures this is how
1. Select the control and open its properties sheet if it's not already open.
2. Select the On Click event property and select the 'build' button (the one
on the right with 3 dots).
3. Select Code Builder in the dialogue and click OK. This step won't be
necessary if you've set up Access to use event procedures by default.
4. The VBA editor window will open at the Click event procedure with the
first and last lines already in place. Enter or paste in the code as new
lines between these.
Ken Sheridan
Stafford, England
Post by mick
I have a "customers input form" for entering name, address, ref no.,
etc.
I have an "order form" with a text box into which can be manually
entered a customer reference number when needed. Next to the box is a
button that when activated opens the "customers input form" displaying
the customer details.
OpenForm
form name, customers input
where condition, ="[CRN]=" & [CRN]
This works fine, except when the button is activated and there is
nothing in the text box, there is then a syntax error and the macro has
to be stopped manually.
Question is; what do I need to add to the macro to prevent the error
happening when the text box is empty and the button is activated?
Thanks.
Many thanks Ken, worked a treat.
--
mick
Loading...