You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Access VBA登录的用户名与密码校验区分大小写

VBA登录校验区分大小写修改方案

核心修改逻辑如下:

  • 修复原有开发者账号校验漏洞:原有逻辑仅校验用户名、密码长度就放行开发者账号,无内容匹配规则,本次补充区分大小写的内容校验
  • 调整数据库账号校验逻辑:Access SQL默认不区分大小写,调用StrComp函数做二进制级字符串比对,实现大小写敏感校验
    修改后完整代码如下:
Private Sub cmdLogin_Click()
    On Error GoTo cmdLogin_ClickErr
    
    ' 第一套逻辑:开发者账号校验,使用vbBinaryCompare实现区分大小写匹配
    If StrComp(Me.txtUserName, "Developer", vbBinaryCompare) = 0 And StrComp(Me.txtPassword, "-Brty4587TRYIN", vbBinaryCompare) = 0 Then
        TempVars.Add "UserName", "Developer"
        TempVars.Add "Password", "-Brty4587TRYIN"
        TempVars.Add "Admin", "-1"

    Else
      Dim rs As Recordset
      ' 第二套逻辑:数据库账号校验,SQL中使用StrComp的0参数(二进制比对)实现区分大小写
      Set rs = CurrentDb.OpenRecordset("Select * From TLKPeople Where StrComp(Username, '" & Me.txtUserName & "', 0) = 0 And StrComp([Password], '" & Me.txtPassword & "', 0) = 0", dbOpenDynaset, dbSeeChanges)
      If Not rs.EOF Then
          TempVars.Add "UserName", rs!UserName.Value
          TempVars.Add "Password", rs!Password.Value
          TempVars.Add "Admin", rs!Admin.Value
          TempVars.Add "ReadOnly", rs!ReadOnly.Value
          TempVars.Add "StdUser", rs!STDUser.Value
          TempVars.Add "OpsUser", rs!OpsUser.Value
      Else
          MsgBox "Your login as failed!", vbOKOnly, "Login Failed"
          Exit Sub
      End If
      rs.Close
      Set rs = Nothing
    End If
    
    If Nz(TempVars!UserName, 0) = "Developer" Then
         DoCmd.ShowToolbar "Ribbon", acToolbarYes
    End If
    
    DoCmd.Close acForm, Me.Name
    DoCmd.OpenForm "MenuMain"
    DoEvents

Exit Sub
    
cmdLogin_ClickErr:
    MsgBox ("Err: " & Err.Number & " " & Err.Description)
End Sub

注意事项

  • StrComp函数第三个参数传0(对应常量vbBinaryCompare)时执行区分大小写的二进制比对,传1时执行不区分大小写的文本比对
  • 本次同步修复了原有开发者账号仅校验长度即可登录的严重安全问题,修改后只有输入完全匹配大小写的开发者账号密码才能进入开发者权限

内容的提问来源于stack exchange,提问作者Kevin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 03:57:01