I have created a form and using the code below applied some validation. However The message box in the Write function for some reason fires twice and also after the form is cancelled when the user goes back to the form to fix the errors the send button has disappeared from the toolbar.
Code:
Function Item_Write()
	Dim str_ValidRequired
	Dim str_ValidIncorrect
	
	
	str_ValidRequired = ""
	str_ValidIncorrect = ""
	
	str_ValidRequired = ValidateRequired
	str_ValidIncorrect = ValidateIncomplete

	If str_ValidRequired <> "" or str_ValidIncorrect <> "" Then
		Item_Write = False
		If str_ValidRequired <> "" Then
			str_ValidRequired = "The form is incomplete, please complete the following fields- "  & VBCrLf & str_ValidRequired
		End If

		If str_ValidIncorrect <> "" Then
			str_ValidIncorrect = "The form contains the following errors please review as described and resubmit the form-" & VBCrLf & str_ValidIncorrect
		End If
		msgbox str_ValidRequired & str_ValidIncorrect, 64, "Request Validation."

	
	End If
	
End Function


   
Function Item_Send()
	Dim str_ValidRequired
	Dim str_ValidIncorrect
	Dim str_ErrorMsg

	str_ValidRequired = ""
	str_ValidIncorrect = ""
	str_ErrorMsg = ""
	str_ValidRequired = ValidateRequired
	str_ValidIncorrect = ValidateIncomplete

	If str_ValidRequired <> "" or str_ValidIncorrect <> "" Then
		

		Item_Send = False
	
		
	
	End If

End Function





Function ValidateRequired()
	
	Dim str_List
	str_List = ""
	Dim txt_Requester
	Dim txt_JobTitle
	Dim txt_Telephone
	Dim txt_Email
	Dim txt_RequestTitle 
	Dim cbo_PracticeArea 
	Dim cbo_Audience 
	Dim cbo_RequestAbout 
	Dim txt_BusinessObjectives 
	Dim txt_Deadline 
	Dim txt_RequestOverview
	txt_Requester = Item.UserProperties("Requester")
	txt_JobTitle = Item.UserProperties("JobTitle")
	txt_Telephone = Item.UserProperties("Telephone")
	txt_Email = Item.UserProperties("Email")
	txt_RequestTitle = Item.UserProperties("RequestTitle")
	cbo_PracticeArea = Item.UserProperties("PracticeArea")
	cbo_Audience = Item.UserProperties("Audience")
	cbo_RequestAbout = Item.UserProperties("RequestAbout")
	txt_BusinessObjectives = Item.UserProperties("Objectives")
	txt_Deadline = Item.UserProperties("Deadline")
	txt_RequestOverview = Item.UserProperties("RequestOverview")
 
	
	
	If txt_Requester = "" Then
		str_List = str_List & "Requester:" & VBCrLf
	End If

	If txt_Telephone = "" Then
		str_List = str_List & "Telephone:" & VBCrLf
	End If

	If txt_Email = "" Then
		str_List = str_List & "Email:" & VBCrLf
	End If

	If txt_RequestTitle = "" Then
		str_List = str_List & "Request Title:" & VBCrLf
	End If

	If cbo_PracticeArea = "" Then
		str_List = str_List & "Practice Area:" & VBCrLf
	End If

	If cbo_Audience = "" Then
		str_List = str_List & "Audience:" & VBCrLf
	End If

	If cbo_RequestAbout = "" Then
		str_List = str_List & "Request About:" & VBCrLf
	End If

	If txt_BusinessObjectives = "" Then
		str_List = str_List & "Business Objectives:" & VBCrLf
	End If

	If txt_RequestOverview = "" Then
		str_List = str_List & "Request Overview:" & VBCrLf
	End If

	ValidateRequired = str_List

End Function
 
Function ValidateIncomplete()
	
	Dim str_List
	Dim txt_Deadline	
	str_List = ""
	txt_Deadline = Item.UserProperties("Deadline")
	
	
	If txt_Deadline < Now() Then
		str_List = "Request Deadline must be in the future:" & VBCrLf
		
	End If
	
	ValidateIncomplete = str_List
End Function