这是我的代码,我不懂为什么会有问题?
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
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
'关闭数据库
userRD.Close
Set userRD = Nothing
userDB.Close
Set userDB = Nothing
Exit Sub
当我运行登陆窗体时,会出现类型不匹配,对象变量或with变量未设置
If userRD.RecordCount > 0 Then
'设置用户身份
UserShenFen = userRD![user_des]
请高手帮忙解决
不是这样写吧
对标题的问题--就是不同用户进入不同的界面,可以这样设计
1、在用户表里设置一个新的字段,整数类型,用来记录用户的权限
2、在用户登录的时候,如果成功了,读取其权限字段的值
3、进入主程序的时候,根据其权限控制菜单和工具条是否可见+是否可用
对于你帖子里的内容,那是调试代码
深度怀疑你没引用DAO
菜单:工程->引用 找 Microsoft DAO 3.6 OBJECT ...
感觉有用的话,记得结贴
打开的数据库路径对不对
DBEngine 的用户名及密码对不对