Вопрос по использованию таймера в VB6.0 - PullRequest
0 голосов
/ 06 апреля 2011

У меня есть вопрос о моем коде, я использую VB6.0, и у меня есть проблема с использованием TimerControl. Сначала пользователь Login[frmLogin], а затем он будет перенаправлен на EmployeeForm[frmEmployee] после того, как Timer[tmLogin]/Progressbar[pgLogin] достигнет 100%.

Вот мой код:

    Private Sub cmdContinue_Click()
    If Me.txtUserID.Text = "" Or Me.txtPassword.Text = "" Then
        MsgBox "Required field must not be a null.", vbCritical, "ERROR"
    Else
        Do Until datLogin.Recordset.EOF
            With datLogin.Recordset
                If Me.txtUserID.Text = !empid And Me.txtPassword.Text = !Password Then

                  'Here

                Else
                    datLogin.Recordset.MoveNext
                End If
            End With
        Loop
        MsgBox "User ID and Password didn't match!", vbCritical, "ERROR LOGIN"
    End If
End Sub

Вот мой код для Timer:

 Private Sub tmLogin_Timer()
    With Me.pbLogin
        Me.pbLogin.Value = Me.pbLogin.Value + 1
        Me.lblLoginPercent.Caption = Str(Me.pbLogin.Value) + "%"
        If Me.pbLogin.Value >= 1 And Me.pbLogin.Value < 50 Then
            Me.lblConnecting.Caption = "Connecting..."
        ElseIf Me.pbLogin.Value >= 50 And Me.pbLogin.Value < 100 Then
            Me.lblConnecting.Caption = "Logging in..."
        Else
            Me.lblConnecting.Caption = "Done..."
            frmLogin.Hide
            frmEmployee.Show
            Me.tmLogin.Enabled = False
            Exit Sub
        End If
    End With
End Sub

1 Ответ

0 голосов
/ 06 апреля 2011

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

Вы можете попробовать сделать это следующим образом:

Private Sub cmdContinue_Click()
    Dim boolLoggedIn As Boolean

    If Me.txtUserID.Text = "" Or Me.txtPassword.Text = "" Then
        MsgBox "Required field must not be a null.", vbCritical, "ERROR"
    Else
        Do Until datLogin.Recordset.EOF
            With datLogin.Recordset
                If Me.txtUserID.Text = !empid And Me.txtPassword.Text = !Password Then
                    boolLoggedIn = true
                    Exit Do
                Else
                    datLogin.Recordset.MoveNext
                End If
            End With
        Loop

        If boolLoggedIn Then 
           'While the timer is running frmLogin will still accept user
           'input, so you should disable the form to prevent that.
           'You should also consider closing the recordset if it isn't 
           'going to be needed further on. 
           tmLogin.Enabled = true
        Else
           MsgBox "User ID and Password didn't match!", vbCritical, "ERROR LOGIN"
        End If
    End If
End Sub

Событие таймера начнет срабатывать только после выхода из этого сабвуфера и запуска другого кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...