2014-11-06 1 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 полей, я бы не пошел по пути петли через элементы управления формой, определял тип управления, проверку отсутствующего значения и т. Д.

Он 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. Я немного изменил его на If Len (Me.Proposal_Name & vbNullString) = 0 Затем ... он отлично работает. Еще раз спасибо. – BWMustang13

Смежные вопросы