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

Access转ODBC后端加dbSeeChanges报Err3001无效参数怎么解决?

错误原因

OpenRecordset 方法的第二个参数是记录集类型常量,dbSeeChanges 属于选项参数,不能直接放在第二个参数位,所以会触发参数无效报错。

修复方案

只需要修改两处代码即可:

  • 将 Dim rs As Recordset 改为 Dim rs As DAO.Recordset,显式指定使用DAO记录集,避免和ADO的Recordset对象产生引用冲突
  • 将OpenRecordset的参数调整为先指定记录集类型 dbOpenDynaset,再追加 dbSeeChanges 参数,两个参数用 + 或者 Or 连接都可以

修改后的完整代码

Private Sub cmdLogin_Click()

    On Error GoTo cmdLogin_ClickErr
    
    If Len(Me.txtUserName) = 9 And Len(Me.txtPassword) = 1 Then
        TempVars.Add "UserName", "Developer"
        TempVars.Add "Password", "1"
        TempVars.Add "Admin", "-1"
    Else
        Dim rs As DAO.Recordset
        Set rs = CurrentDb.OpenRecordset("Select * From TLKPeople Where Username =  '" & Me.txtUserName & "' And Password = '" & Me.txtPassword & "'", 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
    End If

End Sub

补充:如果改完还有报错,检查你的VBA引用里是否已经勾选了「Microsoft DAO x.x Object Library」,操作路径是VBA编辑器→工具→引用,找到对应选项勾选即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:39:03