VBA MS ACCESS - 根据所选按钮将登录表单重定向到不同的表单

时间:2015-04-20 18:19:47

标签: vba access-vba

我有一个登录表单:

p

每个按钮决定cbUserLogin将使用的来源(屏幕截图中的“Nazwa”)

CODE:

Private Sub buttonUAP1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

    Forms!MainLoginForm!cbUserLogin.RowSourceType = "Table/Query"
    Forms!MainLoginForm!cbUserLogin.RowSource = "queryUsersUAP1"
End Sub

对于每个按钮,使用不同查询源的相同代码。

我想做一些事情来实际决定用户将根据该按钮定向的位置。

如果选择登录UAP 1按钮并且登录和密码匹配我想在form_UAP1中登陆用户,如果在登录时选择按钮UAP 2我想让用户登陆form_UAP2等

我试图在某些日子里咬那个东西而且我找不到解决方案。

现在,当登录名和密码与查询匹配时,会发生这种情况(ofc。它有效):

If Me.txtPassword.Value = DLookup("haslo", "dbUzytkownicy", "[Identyfikator]=" & Me.cbUserLogin.Value) Then

        compIdentyfikator = Me.cbUserLogin.Value

        'Zamykam formularz logowania i przenoszę do elementu docelowego

    Me.Visible = False
        DoCmd.OpenForm "test", acNormal, , , acFormEdit, acWindowNormal

    Else
      MsgBox "Hasło które zostało podane jest nieprawodłowe", vbOKOnly, "Złe dane!"
        Me.txtPassword.SetFocus
    End If

我正在使用“hide”而不是cmd.close,因为我正在尝试将compIdentyfikator传递给其他表单(稍后将使用它们)

但首先我想咬那个。

1 个答案:

答案 0 :(得分:0)

也许您可以使用组合框控件而不是一组按钮。您甚至可以使用单选按钮来实现相同的想法(如果我理解您想要的内容)。将您的用户引导至选择UAP ,然后当他们点击登录时,您可以从组合框或单选按钮组中读取UAP选项。

使用Radiobuttons创建一个框架(在我的示例中名为frmUAP):

Login form with Radiobutton group

然后在表单的代码中,设置Frame组选项按钮的Click事件:

Option Compare Database
Option Explicit

Private Sub fraUAP_Click()
    '--- reload the combobox based on the user selection
    Me.cbUserLogin.RowSource = "queryUsersUAP" & Me.fraUAP.Value
    Me.cbUserLogin.Requery
End Sub

Private Sub cmdZaloguj_Click()
    If (all_user_input_fields_have_been_validated) Then
        DoCmd.OpenForm "frmUAP" & Me.fraUAP.Value
    End If
End Sub

每次用户选择不同的Radiobutton时,您的登录名称都应刷新。

注意:确保Radiobuttons(选项按钮)各自在组中具有正确的整数值... optUAP1 value = 1,等等