2014-11-06 74 views
0

我創建了一個用戶窗體,要求用戶輸入多個字符串或整數。我試圖讓一個消息框出現,如果幾個強制性框未填寫。我想列出空字段,但跳過填充字段。我知道如何做一個for循環,如果值是整數但大部分輸入都是字符串。我認爲我可以用Dim C做一些控制,並且知道我的消息框的總體佈局,但是我超出了這個範圍。請幫忙,以便我不必用六個單獨的消息框編寫六個單獨的條件語句!VBA將用戶窗體中的列表空字段添加到消息框中

六個表單字段名稱是: PROPOSAL_NAME,Date_of_Submission,cboContraact_type,Contract_Neg_Name,Contract_Neg_Number和Validity_Period

消息框,我腦子裏想的總體佈局如下:

MsgBox "You have left the following mandatory fields empty:" & vbCrLf & vbCrLf & "Proposal_Name" & vbNewLine & "Date_of_Submission" & Chr(10) & "cboContraact_type" & Chr(10) & "Contract_Neg_Name" & Chr(10) & "Validity_Period" 

回答

1

由於您只關注6個字段,因此我不會沿着循環遍歷表單控件,確定控件類型,檢查缺失值等的路徑。

He re是一個命令按鈕的OnClick,可能適用於您:

Private Sub Command12_Click() 


Dim sMissingValues As String 
sMissingValues = "" 

If Nz(Me!Proposal_Name, "") = "" Then sMissingValues = sMissingValues + vbCrLf + "Proposal_Name" 
If Nz(Me!Date_of_Submission, "") = "" Then sMissingValues = sMissingValues + vbCrLf + "Date_of_Submission" 
If Nz(Me!cboContraact_type, "") = "" Then sMissingValues = sMissingValues + vbCrLf + "cboContraact_type" 
If Nz(Me!Contract_Neg_Name, "") = "" Then sMissingValues = sMissingValues + vbCrLf + "Contract_Neg_Name" 
If Nz(Me!Contract_Neg_Number, "") = "" Then sMissingValues = sMissingValues + vbCrLf  + "Contract_Neg_Number" 
If Nz(Me!Validity_Period, "") = "" Then sMissingValues = sMissingValues + vbCrLf + "Validity_Period" 

If sMissingValues <> "" Then 
    MsgBox "You have left the following mandatory fields empty:" & vbCrLf & sMissingValues 
End If 


End Sub 
+0

感謝Daniel。我修改了一下,如果Len(Me.Proposal_Name&vbNullString)= 0那麼....它的效果很好。再次感謝。 – BWMustang13 2014-11-11 17:31:29

相關問題