Прокрутите текстовые поля, чтобы подтвердить ввод всей информации - PullRequest
0 голосов
/ 02 ноября 2018

Я просмотрел многочисленные посты о циклах и, к сожалению, мне не удалось изменить то, что я нашел, чтобы удовлетворить свои потребности, поэтому я прошу помощи.

Обратите внимание, что я все еще относительно новичок в циклах, как вы можете видеть из моих других сообщений.

Суть моей проблемы в том, что мне нужно запустить проверку элементов управления TextBox со значением тега «Требуется» в трех разных фреймах, которые находятся в одной и той же пользовательской форме, чтобы убедиться, что они завершены, когда пользователь пытается войти значение в TextBox на той же пользовательской форме. Если какой-либо из TextBox с тегом «Required» не имеет значения, тогда мне нужна отладочная печать, чтобы показать мне имена этих TextBoxes. Оттуда я смогу выяснить, как добавить вывод на печать в msgbox. Ниже приведен код, который я начал, но я застрял в том, как хранить каждый из текстовых полей, которые не имеют значения в переменной, которую я могу использовать для отладочной печати. ​​

Private Sub yLPLendComp_Enter()
    Dim ctrl As Control
    Dim i As Integer

'   SET THIS TO STORE THE CTRL.NAME IF BLANK??
    i = 0

'   THIS LOOKS THROUGH EACH REQUIRED TEXTBOX (SET BY TAG VALUE)
    For Each ctrl In LP.LoanInfo.Controls
        If TypeName(ctrl) = "TextBox" Then
            If ctrl.Tag = "Required" And ctrl.Value = "" Then
                i = i + 1
                Debug.Print ctrl.Name
        End If
    Next ctrl
'   IF THE VALUES ARE BLANK THEN MSG BOX APPEARS AND PRINTS THE EMPTY TEXT BOX NAMES
'    If i = 1 Then
'        Debug.Print ctrl.Name
'        MsgBox "Not all fields that need to be completed are complete please complete your required fields.", vbCritical, UCase("error")
'    End If
End Sub

1 Ответ

0 голосов
/ 02 ноября 2018

Примерно так:

Private Sub yLPLendComp_Enter()

    Dim ctrl As Control
    Dim msg As String, sep

    For Each ctrl In LP.LoanInfo.Controls
        If TypeName(ctrl) = "TextBox" Then
            If ctrl.Tag = "Required" And ctrl.Value = "" Then
                msg = msg & sep & ctrl.Name
                sep = vbLf
            End if
        End If
    Next ctrl

    If Len(msg) > 0 Then
        MsgBox "One or more required fields need to be completed" & vbLf & msg, _
                 vbCritical, "Missing Information"
    End If
End Sub

Если ваши управляющие имена не являются удобными для пользователя, вы можете использовать Tag значения, такие как «Обязательное: имя, понятное для пользователя здесь», тогда проверьте

If ctrl.Tag Like "Required:*"

, а затем

msg = msg & sep & Replace(ctrl.Tag, "Required:","")

РЕДАКТИРОВАТЬ : использовать текст из связанных ярлыков

msg = msg & sep & Me.Controls("Label_" & ctrl.Name).Caption
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...