I can't see anything that would cause the problem you describe, but I would do it a different way anyway:
if (!(validate(s_startDate) == true && validate(s_endDate)== true))
{
Evo::Alarm(23, ALM_NOTIFY, _T("Please enter the start and end dates in the correct format!"));
return;
}
if (!((s_jobNum.IsEmpty() != true && s_jobLoc.IsEmpty() != true))
{
Evo::Alarm(23, ALM_NOTIFY, _T("Please enter job number and location!"));
return;
}
if (height.Length() == 0)
{
Evo::Alarm(23, ALM_NOTIFY, _T("Please enter the height!"));
return;
}
Some people will tell you that there should only be a single exit, but I prefer to do all my validity checking in one place, and exit immediately.