Вопрос по таймеру управления в VB6 - PullRequest
0 голосов
/ 07 апреля 2011

У меня есть вопрос о моем коде, я использую VB6.0 , и у меня есть вопрос, используя TimerControl ... Сначала пользователь войдет в систему [ frmLogin ], а затем ИД пользователя и Пароль должны распознать, является ли он Admin или Гость . Как только он был распознан как Admin , пользователь будет перенаправлен на frmAdmin , а если нет, он будет перенаправлен на frmEmployee после таймера [ tmLogin ] / Progressbar [ pgLogin ] достигает 100% . Я просто озадачен, потому что я использую базу данных с двумя таблицами [ tblEmployee & tblPosition ]. Каждая таблица имеет индекс: idxid для tblEmployee и idxpost для tblPosition ... Я не знаю, куда вставить условную заявление ... Пожалуйста, помогите мне, как только оно будет решено, это будет моим правилом для дальнейшей проблемы, с которой я могу столкнуться ... Заранее спасибо. Вот мой код

Private Sub cmdContinue_Click()
Dim boolLogedIn As Boolean
    If Me.txtUserID.Text = "" And Me.txtPassword.Text = "" Then
        Me.lblWarning.Caption = "*User ID and Password must not be a null."
        Me.tmLoginformSize.Enabled = True
        Me.txtUserID.SetFocus
        Beep
    ElseIf Me.txtUserID.Text = "" Then
        Me.lblWarning.Caption = "*User ID must not be a null."
        Me.tmLoginformSize.Enabled = True
        Me.txtUserID.SetFocus
        Beep
    ElseIf Me.txtPassword.Text = "" Then
        Me.lblWarning.Caption = "*Password must not be a null."
        Me.tmLoginformSize.Enabled = True
        Me.txtPassword.SetFocus
        Beep
    Else
        Do Until datLogin.Recordset.EOF
            With datLogin.Recordset
                If Me.txtUserID.Text = !empid And Me.txtPassword.Text = !Password Then
                    boolLogedIn = True
                    Exit Do
                Else
                    datLogin.Recordset.MoveNext
                End If
            End With
        Loop
        If boolLogedIn = True Then
            Me.tmLogin.Enabled = True
            Me.lblConnecting.Visible = True
            Me.lblLoginPercent.Visible = True
            Me.pbLogin.Visible = True
        Else
            Me.lblWarning.Caption = "*User ID and Password did not match."
            Me.datLogin.Recordset.MoveFirst
            Me.tmLoginformSize.Enabled = True
            Beep
        End If
    End If
End Sub

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
        End If
    End With
End Sub

... вот мои скриншоты my tables

my frmLogin

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

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

dim r as new adodb.recordset
r.open "select postid from tblemployee",db,adopendynamic,adlockoptimistic,adcmdtext

'db is your adodb.connection

if r.eof then
    msgbox "name/pass not matched"
    exit sub
else
    'do whatever you like with your postid in r.fields(0)
end if
0 голосов
/ 07 апреля 2011

Вот как я могу выполнить то, что вы ищете, с минимальными изменениями ваш код:

'Add this declaration 
Dim m_intLoggedInUserType As Integer

Private Sub cmdContinue_Click()
    'Unchanged code

        Do Until datLogin.Recordset.EOF
            With datLogin.Recordset
                If Me.txtUserID.Text = !empid And Me.txtPassword.Text = !Password Then
                    boolLogedIn = True
                    m_intLoggedInUserType = !postId
                    Exit Do
                Else
                    datLogin.Recordset.MoveNext
                End If
            End With
        Loop

        'More unchanged code
End Sub

Private Sub tmLogin_Timer()
    With Me.pbLogin
        'Unchanged code

            Me.lblConnecting.Caption = "Done..."
            frmLogin.Hide

            if m_intLoggendInUserType = 1 Then 
               frmAdmin.Show
            Else
               frmEmployee.Show
            End If

            Me.tmLogin.Enabled = False
        End If
    End With
End Sub

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

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