将ms access窗体的参数传递到查询的VBA代码
我似乎找不出一个好方法将其编码到我的VBA宏中。我正在使用Access。我有一个表单,用作“登录”,它可以确保用户在用户表中。一旦确认用户在用户表中,我希望它使用用户名的条件在另一个表上运行查询 这是我的查询引用表上“我的用户名”字段的条件:将ms access窗体的参数传递到查询的VBA代码,vba,ms-access,Vba,Ms Access,我似乎找不出一个好方法将其编码到我的VBA宏中。我正在使用Access。我有一个表单,用作“登录”,它可以确保用户在用户表中。一旦确认用户在用户表中,我希望它使用用户名的条件在另一个表上运行查询 这是我的查询引用表上“我的用户名”字段的条件: [Forms]![LoginForm].[txtUserName] 这是我的登录表单单击按钮的宏 Private Sub btnLogin_Click() Dim User As String Dim UserLevel As Inte
[Forms]![LoginForm].[txtUserName]
这是我的登录表单单击按钮的宏
Private Sub btnLogin_Click()
Dim User As String
Dim UserLevel As Integer
Dim TempPass As String
Dim ID As Integer
Dim UserName As String
Dim TempID As String
If IsNull(Me.txtUserName) Then
MsgBox "Please enter UserName", vbInformation, "Username required"
Me.txtUserName.SetFocus
ElseIf IsNull(Me.txtPassword) Then
MsgBox "Please enter Password", vbInformation, "Password required"
Me.txtPassword.SetFocus
Else
If (IsNull(DLookup("UserLogin", "tblUser", "UserLogin = '" & Me.txtUserName.Value & "' And UserPassword = '" & Me.txtPassword.Value & "'"))) Then
MsgBox "Invalid Username or Password!"
Else
TempID = Me.txtUserName.Value
UserName = DLookup("[UserName]", "tblUser", "[UserLogin] = '" & Me.txtUserName.Value & "'")
UserLevel = DLookup("[UserSecurity]", "tblUser", "[UserLogin] = '" & Me.txtUserName.Value & "'")
TempPass = DLookup("[UserPassword]", "tblUser", "[UserLogin] = '" & Me.txtUserName.Value & "'")
UserLogin = DLookup("[UserLogin]", "tblUser", "[UserLogin] = '" & Me.txtUserName.Value & "'")
DoCmd.Close
If (TempPass = "password") Then
MsgBox "Please change Password", vbInformation, "New password required"
DoCmd.OpenForm "frmUserinfo", , , "[UserLogin] = " & UserLogin
Else
'open different form according to user level
DoCmd.OpenQuery "ClockDefectRun", , acReadOnly
End If
End If
End If
End Sub
每当我运行此命令时,我的查询都会打开,但它会询问字段,就好像它在我的表单中不存在一样。如何以编程方式传递此信息?在完成参数设置之前,请尝试隐藏第一个窗口(窗体),而不是关闭它。然后你可以关闭所有的窗口(表单)。好吧,我希望你不打算在数据库中原始保存密码…为什么要“查找”你已经拥有的UserLogin:
UserLogin=DLookup(“[UserLogin]”)、“tblUser”、“[UserLogin]=””、&Me.txtUserName.Value&“”
。旁白:Excel宏访问宏
。所以,这里没有发布Access宏。@VincentG…正确,但它不是Access宏,而是Access模块。Access宏是特定的非VBA对象。不要与Excel术语混为一谈。