2011-04-06 5 views
-1

내 코드에 대한 쿼리가 있는데 VB6.0을 사용하고 있는데 TimerControl을 사용하는 데 문제가 있습니다. 사용자는 먼저 Login[frmLogin]을 입력 한 다음 Timer[tmLogin]/Progressbar[pgLogin]이 100 %에 도달 한 후 EmployeeForm[frmEmployee]으로 리디렉션됩니다.VB6.0에서 타이머를 사용하는 질문

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 
+3

무엇이 문제입니까? – MusiGenesis

+0

내 문제는 ...이 코드를 완료하는 방법을 모르겠습니다. 'If ​​Me.txtUserID.Text =! empid And Me.txtPassword.Text =! Password Then' 후 ProgressBar는 100 %에 도달 할 때까지 스스로로드해야합니다. 그 후 ** frmLogin.Hide ** 및 ** frmEmployee.Show ** 이벤트가 발생합니다. – aer

+0

이 코드를 사용하면 멈출 방법이 없습니다. 어떻게해야합니까? 'If ​​Me.txtUserID.Text =! empid And Me.txtPassword.Text =! Password Then tmLogin.Enable = True Else' – aer

답변

0

당신은 수행되는 다른 처리가 없기 때문에 타이머 이벤트는 한 발사 알고 있어야합니다 : 여기

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 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 

타이머 이벤트는이 하위가 종료하고 다른 코드가 실행되지되면 발생하기 시작합니다.

+0

감사합니다! 나는 당신의 정확한 설명을 이해한다. .. 그것은 대단한 도움이된다. 나는 datLogin.Recordset.MoveFirst와 boolLoggedIn의 거짓 진술을 시도했다. 레코드 세트를 닫으려면 어떻게해야합니까? – aer

+0

제 대답이 당신에게 도움이 되었기 때문에 기쁩니다. datLogin은 무엇인지 모르겠지만 Recordset은 ADODB.Recordset이라고 가정합니다. 이 경우 Recordset.Close를 호출하면됩니다. – jakdep

+0

즉 ADODB가 아닌 DATACONTROL 선생님입니다. 나는 2 시간 전에 게시 한 또 다른 질문을 가지고있다. 나는 더 많은 것을 명확히하려고 노력했고 나의 테이블과 frmLogin의 스크린 샷도있다. 제목은 ** VB6의 타이머 컨트롤 **에 대한 질문입니다. 제발 저를 도울 수 있습니다, 나는 다만 그것이 발생할 수있는 추가 문제를 해결하는 규칙이되기를 원합니다. 미리 감사드립니다. – aer

관련 문제