我有一个登录表单:
每个按钮决定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传递给其他表单(稍后将使用它们)
但首先我想咬那个。
答案 0 :(得分:0)
也许您可以使用组合框控件而不是一组按钮。您甚至可以使用单选按钮来实现相同的想法(如果我理解您想要的内容)。将您的用户引导至选择UAP ,然后当他们点击登录时,您可以从组合框或单选按钮组中读取UAP选项。
使用Radiobuttons创建一个框架(在我的示例中名为frmUAP
):
然后在表单的代码中,设置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,等等