http://u.163.com/QNYqiC
或者给你的邮箱我  :提取码:046yomf3
希望给我解说下。  我是新手 自学的我运行是老是 错误 “91”
对象变量或with变量未定义

解决方案 »

  1.   

    你连接成功了么?
    你有没有
    dim conn as adodb.connection
    set conn =new adodb.connection
    dim rs as adodb.recordset
    set rs=new adodb.reccordset
      

  2.   

    登陆窗口代码在这:'----------------------------------frmLogin.frm----------------------------------
    Option Explicit'登陆
    Private Sub cmdLogin_Click()
        '声明ADODB.Recordset对象变量
        Dim objRecordset As ADODB.Recordset
        '声明SQL字符串
        Dim strSQL As String
        
        '查找用户名
        strSQL = "select UserName from Users where UserName='" & _
                        Trim(txtUserName.Text) & "'"
        '获得符合输入的用户记录集
        Set objRecordset = ExecuteSQL(strSQL)
        '如果输入的用户不存在
        If objRecordset.EOF = True Then
            MsgBox " 用户名错误!", vbExclamation + vbOKOnly, "警告"
            txtUserName.SetFocus
            txtUserName.SelStart = 0
            txtUserName.SelLength = Len(txtUserName.Text)
            Exit Sub
        End If
        
        '从数据库中获得用户名
        UserName = objRecordset.Fields(0)
        
        '查找用密码
        strSQL = "select UserName from Users where Password='" & _
                Trim(txtPassword.Text) & "'"
        '获得符合输入的密码记录集
        Set objRecordset = ExecuteSQL(strSQL)
        '如果输入的密码不存在
        If objRecordset.EOF = True Or UserName <> objRecordset.Fields(0) Then
            MsgBox "密码错误!", vbExclamation + vbOKOnly, "警告"
            txtPassword.SetFocus
            txtPassword.SelStart = 0
            txtPassword.SelLength = Len(txtPassword.Text)
            Exit Sub
        End If
        
        '显示主界面
        mdiMain.Show
        '卸载登陆窗体
        Unload Me
    End Sub'退出登陆
    Private Sub cmdQuit_Click()
        Unload Me
    End Sub'输入用户名
    Private Sub txtUserName_KeyPress(KeyAscii As Integer)
        '输入回车表示输入结束,密码框获得焦点
        If KeyAscii = 13 Then
            txtPassword.SetFocus
        End If
    End Sub'输入密码
    Private Sub txtPassword_KeyPress(KeyAscii As Integer)
        '输入回车表示输入结束,登陆按钮获得焦点
        If KeyAscii = 13 Then
            cmdLogin.SetFocus
        End If
    End Sub
    请问那里错:、?
    模块代码在这:'----------------------------------mdlSQL.bas----------------------------------
    Option ExplicitPublic blnModifyDoc As Boolean
    Public blnModifyClass As Boolean
    Public strSQL As String
    Public blnFindDoc As Boolean
    Public blnFindClass As Boolean
    Public UserName As String
    Public strUserManage As StringPublic Function ExecuteSQL(ByVal strSQL As String) As ADODB.Recordset
        On Error GoTo ErrorTrap
        
        '声明ADODB.Connection对象变量
        Dim objConnection As ADODB.Connection
        '声明ADODB.Recordset对象变量
        Dim objRecordset As ADODB.Recordset
        '声明一个存放SQL查询条件的数组
        Dim strArray() As String
        
        '定义新连接
        Set objConnection = New ADODB.Connection
        '创建新连接
        objConnection.ConnectionString = ConnectString
        '打开数据库
        objConnection.Open
        
        'Split函数返回一个下标从零开始的一维数组,包含指定数目的子字符串
        strArray = Split(strSQL)
        If InStr("INSER,DELETE,UPDATE", UCase(strArray(0))) Then
            '执行SQL查询
            objConnection.Execute strSQL
        Else
            '打开记录集
            Set objRecordset = New ADODB.Recordset
            objRecordset.Open Trim(strSQL), objConnection, _
                        adOpenKeyset, adLockOptimistic
            Set ExecuteSQL = objRecordset
        End If
        
        '释放对象
        Set objRecordset = Nothing
        Set objConnection = Nothing
        Exit Function
        
    '出错处理
    ErrorTrap:
        Set objRecordset = Nothing
        Set objConnection = Nothing
    End Function'连接字符串赋值函数
    Public Function ConnectString() As String
        ConnectString = "provider=Microsoft.Jet.OLEDB.4.0;Data source =" _
                        & App.Path & "/StudentsManagement.mdb"
    End Function'用户权限管理
    Public Function UserManage(ByVal intUsrClass As Integer) As String
        On Error GoTo ErrorTrap
        
        '声明SQL字符串
        Dim strSQL As String
        '声明ADODB.Connection对象变量
        Dim objConnection As ADODB.Connection
        '声明ADODB.Recordset对象变量
        Dim objRecordset As ADODB.Recordset
        
        '定义新连接
        Set objConnection = New ADODB.Connection
        '创建新连接
        objConnection.ConnectionString = ConnectString
        '打开数据库
        objConnection.Open
        '打开记录集
        Set objRecordset = New ADODB.Recordset
        
        '查询高级用户
        strSQL = "select Administration from Users where UserName='" & UserName & "'"
        objRecordset.Open Trim(strSQL), objConnection, adOpenKeyset, adLockOptimistic
        '如果没查询到当前用户
        If objRecordset.EOF = True Then
            MsgBox "非法用户!", vbExclamation + vbOKOnly, "警告"
            UserManage = "nothing"
            Exit Function
        End If
        '高级用户
        If objRecordset.Fields(0) = "Y" Then
            UserManage = "Administration"
            Exit Function
        End If
        '关闭记录集
        objRecordset.Close
        
        '查询只读用户
        strSQL = "select ReadOnly from Users where UserName='" & UserName & "'"
        objRecordset.Open Trim(strSQL), objConnection, adOpenKeyset, adLockOptimistic
        '只读用户
        If objRecordset.Fields(0) = "Y" Then
            UserManage = "ReadOnly"
            Exit Function
        End If
        
        '普通用户
        Select Case intUsrClass
            '权限
            Case 1
                strSQL = "select Weight1 from Users where UserName='" _
                            & UserName & "'"
            Case 2
                strSQL = "select Weight2 from Users where UserName='" _
                            & UserName & "'"
            Case 3
                strSQL = "select Weight3 from Users where UserName='" _
                            & UserName & "'"
            Case 4
                strSQL = "select Weight4 from Users where UserName='" _
                            & UserName & "'"
        End Select
        
        '打开记录集
        Set objRecordset = New ADODB.Recordset
        objRecordset.Open Trim(strSQL), objConnection, adOpenKeyset, adLockOptimistic
        '权限
        If objRecordset.Fields(0) = "Y" Then
            UserManage = "True"
        Else
            UserManage = "False"
        End If
        
        '释放对象
        Set objRecordset = Nothing
        Set objConnection = Nothing
        Exit Function
        
    '出错处理
    ErrorTrap:
        Set objRecordset = Nothing
        Set objConnection = Nothing
    End Function
    请大家多多指教  ,