Public Function cls_sqlmm(ByVal UserName As String, ByVal password As String) As Boolean
        Dim sql As String
        Dim rs As ADODB.Recordset
        sql = "select 用户名,密码 from 密码库 where 用户名='" + UserName + "' and 密码='" + password + "'"
        If getsql(sql) Is Nothing Then
            cls_sqlmm = False
        Else
            cls_sqlmm = True
        End If
    End Function
Public my_boolean As Boolean
    Public Function getsql(ByVal sql As String)
        Dim rs As ADODB.Recordset
        Set rs = New ADODB.Recordset
        rs.Open sql, "provider=microsoft.jet.oledb.4.0;data source=d:\pw\hh\hh.mdb;user id=;password=;", adOpenStatic, adLockReadOnly
        getsql = rs
        rs.Close
    End Function

解决方案 »

  1.   

    Private conn As adodb.Connection
    Private WithEvents rs As adodb.RecordsetSet conn = New adodb.Connection
    Dim dbfilename As String
    dbfilename = App.Path & "\article.mdb"
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbfilename & ";Persist Security Info=False;"放到模块中或者form_load中,你的代码没有问题,每次调用 getsql函数,需要重新连接数据库,性能差
      

  2.   

    我只是在匹配用户名、密码时才调用这个模块只是不管用户名、密码数据库内有没有,在
    If getsql(sql) Is Nothing Then
                cls_sqlmm = False
            Else
                cls_sqlmm = True
            End If
        中总是一个结果getsql(sql) Is Nothing 
        不知道什么原因
      

  3.   

    Public Function getsql(ByVal sql As String) as boolean
            Dim rs As ADODB.Recordset
            Set rs = New ADODB.Recordset
            rs.Open sql, "provider=microsoft.jet.oledb.4.0;data source=d:\pw\hh\hh.mdb;user id=;password=;", adOpenStatic, adLockReadOnly
            if rs.eof then
            getsql =false
            else
            getsql =true
            end if
        set rs=nothing
    End Function
      

  4.   

    ok,谢谢,这个方法可以但为什么判断getsql(sql) Is Nothing 就不行
      

  5.   

    试试
    Public Function getsql(ByVal sql As String) as objectgetsql未负值时,getsql等于nothing
      

  6.   

    Public Function getsql(ByVal sql As String) as adodb.recordset
      

  7.   

    用ADO连接后再复制那个连接过去算了