Вызовите конкретную пользовательскую форму на основе значения ячейки - PullRequest
0 голосов
/ 01 января 2019

Я создаю систему для студентов, чтобы выбрать их классы в университете.Я настроил форму входа в систему, которая считывает идентификатор пользователя и пароль из листа «StudentInformation».200 учеников принадлежат к 3 различным классам, поэтому я настроил пользовательскую форму для каждой программы (AMForm, FMForm и HRMForm).

В столбце A указан их идентификатор пользователя, а в столбце B - их пароль.В столбце F указаны термины «AM», «FM» или «HRM» для каждой программы.При входе в систему я хочу, чтобы он открыл их конкретную пользовательскую форму на основе значения ячейки в столбце F, например, если ячейка F2 содержит «AM», то AMForm запускается, если F3 содержит «FM», тогда FMForm запускается, и если ячейка F4 содержит «HRM»"Затем запускается HRMForm.

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

Private Sub btnLogin_Click()

    Dim RowNo As Long
    Dim ID As String, PW As String
    Dim WS As Worksheet
    Dim aCell As Range

    On Error GoTo ErrorHandler

'Ensure User ID and password fields are filled

    If Len(Trim(txtUser)) = 0 Then
        txtUser.SetFocus
        MsgBox "Error. UserID cannot be empty."
        Exit Sub
    End If

    If Len(Trim(txtPass)) = 0 Then
        txtPass.SetFocus
        MsgBox "Error. Password cannot be empty."
        Exit Sub
    End If

'Set Range Location

    Application.ScreenUpdating = False

    Set WS = Worksheets("StudentInformation")
    ID = LCase(Me.txtUser)

    Set aCell = WS.Columns(1).Find(What:=ID, LookIn:=xlValues, _
    LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False)

'If match found
    If Not aCell Is Nothing Then
        RowNo = aCell.Row
        If Me.txtPass = aCell.Offset(, 1) Then
            MsgBox "Login Successful."
            AMForm.Show
            Unload Me
        Else
            MsgBox "Incorrect UserID or Password. Please try again.", vbOKOnly
        End If
 'If not found
    Else
        MsgBox "Incorrect UserID or Password. Please try again.", vbOKOnly
    End If

CleanExit:
    Set WS = Nothing
    Application.ScreenUpdating = True
    Exit Sub
ErrorHandler:
    MsgBox Err.Description
    Resume CleanExit
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...