这是我的代码,我不懂为什么会有问题?
Public Sub CheckUser(userID As String, passwd As String)Dim userDB As Database
Dim userRD As Recordset
Dim dbName As String
Dim StrSQL As StringScreen.MousePointer = 11On Error GoTo errEnddbName = App.Path
If Right(dbName, 1) <> "\" Then dbName = dbName + "\"
dbName = dbName + "db1.mdb"
StrSQL = "select user_des from sysuser where UserName=""" & userID & """ and UserPwd=""" & passwd & """"'DBEngine.DefaultUser = "sysuser"
'DBEngine.DefaultPassword = "sysuser"
'打开数据库
Set userDB = DBEngine.Workspaces(0).OpenDatabase(dbName, False, True)
'检索用户,验证密码
Set userRD = userDB.OpenRecordset(StrSQL, dbOpenSnapshot)If userRD.RecordCount > 0 Then
    '设置用户身份
    UserShenFen = userRD![user_des]
    '关闭数据库
    userRD.Close
    Set userRD = Nothing
    userDB.Close
    Set userDB = Nothing
    
    '进入用户环境
    Load FrmMain
    FrmMain.Show
    Unload Login
    logOK = True
    userName = userID
    Screen.MousePointer = vbDefault
Else
    '关闭数据库
    userRD.Close
    Set userRD = Nothing
    userDB.Close
    Set userDB = Nothing
    logOK = False
    
    Screen.MousePointer = vbDefault
    MsgBox "用户名或密码错误!请重新输入!", vbOKOnly + vbExclamation, "登陆失败"
End If
Exit SuberrEnd:
    Screen.MousePointer = vbDefault
    MsgBox Err.Description, vbOKOnly + vbExclamation, "登陆错误"
    logOK = False
    Err.Clear
    '关闭数据库
 userRD.Close
    Set userRD = Nothing
 userDB.Close
    Set userDB = Nothing
    Exit SubEnd SubPublic Sub LogOff()Dim retVal As IntegerretVal = MsgBox("你确定要注销吗?", vbOKCancel + vbQuestion, "注销当前用户")
If retVal = vbCancel Then Exit SubLoad Login
Login.ShowIf UserShenFen = "毕业生" Then
    Unload FrmbiyesMain
ElseIf UserShenFen = "管理员" Then
    Unload FrmguanliMain
ElseIf UserShenFen = "教师" Then
    Unload FrmjiaoshiMain
End If
Unload FrmMain
UserShenFen = ""
logOK = FalseEnd SubPublic Sub Sys_exit()Dim retVal As IntegerretVal = MsgBox("你确定要退出吗?", vbOKCancel + vbQuestion, "退出系统")
If retVal = vbCancel Then Exit SubIf UserShenFen = "毕业生" Then
    Unload FrmbiyesMain
ElseIf UserShenFen = "管理员" Then
    Unload FrmguanliMain
ElseIf UserShenFen = "教师" Then
    Unload FrmjiaoshiMain
End If
Unload FrmMain
EndEnd Sub运行的时候总是出现类型不匹配,对象变量或with变量块未设置
If userRD.RecordCount > 0 Then
    '设置用户身份
    UserShenFen = userRD![user_des]
    '关闭数据库
    userRD.Close
    Set userRD = Nothing
    userDB.Close
    Set userDB = Nothing
    

解决方案 »

  1.   

       问题出在这:
     '关闭数据库
     userRD.Close
        Set userRD = Nothing
     userDB.Close
        Set userDB = Nothing
        Exit Sub
    当我运行登陆窗体时,会出现类型不匹配,对象变量或with变量未设置
    If userRD.RecordCount > 0 Then
        '设置用户身份
        UserShenFen = userRD![user_des]
    请高手帮忙解决
      

  2.   

    userRD![user_des]
    不是这样写吧
      

  3.   

    首先你的帖子文不对题。
    对标题的问题--就是不同用户进入不同的界面,可以这样设计
    1、在用户表里设置一个新的字段,整数类型,用来记录用户的权限
    2、在用户登录的时候,如果成功了,读取其权限字段的值
    3、进入主程序的时候,根据其权限控制菜单和工具条是否可见+是否可用
    对于你帖子里的内容,那是调试代码
    深度怀疑你没引用DAO
    菜单:工程->引用 找 Microsoft DAO 3.6 OBJECT ...
    感觉有用的话,记得结贴
      

  4.   

    userRD...未设置
    打开的数据库路径对不对
    DBEngine 的用户名及密码对不对