Validateion text needed - one of two fields on form must be filled out

Hi experts!  I have a form with two checkboxes, each with their own field.  They are "Male" and "Female."  I need to ensure that before closing the form that one of the fields has been checked.  Any ideas?
slamboyAsked:
Who is Participating?
 
RodgerConnect With a Mentor Systems AnalystCommented:
Have the macro run the code.  I do not do much with Macors just VBA Code.  I am pretty sure there is a command RunCode.  Or just put that code on the obClose event of the form.  Macros and code can work together.
0
 
RodgerSystems AnalystCommented:
You would need to but some code on the onClose Event of the form.  I would also remove the close button on the form.  Is this the only form or is it part of larger form?
As a note to making sure you have the structure correct.  Is male and female their own fields or do you have one field for gender?  Also you might want to use radio button in a group that way the user can only select one.  A checkbox implies that the user can make more then one selection.
0
 
VallerianiCommented:
Hey there mate!

I provided a sample, javascript will be used here to validate the script.  You can try the script out. I used radio buttons, as I suppose I think you ment that? Checkboxes allow multiple selections, and I don't think they can be both male and female :)

Some small things:

When declaring, use 'document.myformname.radiobuttonname[x] ... In my example you will see myformname is 'myform', radiobuttonname is 'Gender' and [x] will be 0 and 1, because we have TWO optionbuttons. If we had more, we would continue this, [2],[3] etc.

If you want to validate more then just radio buttons, check out this:

http://www.yourhtmlsource.com/javascript/formvalidation.html

Hope this helps!
<form name="myform" method="post" onsubmit="return checkform(this);">
<input type="radio" name="Gender" value="Male"> Male<br>
<input type="radio" name="Gender" value="Female"> Female<br>
<input type="submit" value="GO">
</form>
 
<script language="JavaScript" type="text/javascript">
<!--
function checkform ( form )
{
  // ** START **
	if (!document.myform.Gender[0].checked &&
	!document.myform.Gender[1].checked) {
			alert( "Please enter gender!" );
		return false;
	}
 
  // ** END **
  return true ;
}
//-->
</script>

Open in new window

0
Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

 
slamboyAuthor Commented:
RodgerDjr,

I am looking for a code example here.  Yes, they are separate fields.  I should have probably used radio buttons but I'm too far down the road to change things now (lots & lots of queries).  I have this situation with forms and subforms.
0
 
VallerianiCommented:
Here then, if you want for checkboxes, don't think its a good idea, but I added a extra check to make sure that both are not checked as well.
<form name="myform" method="post" onsubmit="return checkform(this);">
<INPUT TYPE=CHECKBOX NAME="Male">Male<P>
<INPUT TYPE=CHECKBOX NAME="Female">Female<P>
<input type="submit" value="GO">
</form>
 
<script language="JavaScript" type="text/javascript">
<!--
function checkform ( form )
{
  // ** START **
	if (!document.myform.Male.checked && !document.myform.Female.checked) {
		 alert( "Please enter gender!" );
		return false;
	}
	if (document.myform.Male.checked && document.myform.Female.checked) {
		 alert( "You cannot select both genders!" );
		return false;
	}
  // ** END **
  return true ;
}
//-->
</script>

Open in new window

0
 
RodgerSystems AnalystCommented:
i still would use radio buttons, they will not harm the queries.
You would just need to use an if statement.
If isNull(me.checkbox1) or isNull(me.checkbox2) then
     msgbox('You must select male or female", vbOKOnly, "Your Title here")
     docmd.CancelEvent
else
end if
0
 
RodgerSystems AnalystCommented:
Vallerini, this is an MS Access fourm not Javascript

:)
0
 
VallerianiCommented:
Ack! Sorry! I totally must of clicked the wrong area, my bad.
0
 
slamboyAuthor Commented:
RodgerDjr, this is exactly what I was looking for.  However I forgot I have a macro that runs when the form closes.  Any ideas on how I could still run this check?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.