在Access里ADO连接MS SQL2000数据库,我不想每次打开recordset时都要写
dim connStr as string
dim conn as new adodb.connection
connStr="provider=sqloledb;data source=192.168.0.11;initial catalog=data;user id=sa;password=sa"
conn.connectionString=connStr
conn.open想直接把上面的代码写在类模块里,然后要打开recordset时就传一个sql语句到自定义函数(即上面的代码写成的类里)就可以打开recordset了
请高手指教,详细一点,最好有示例或源程序,谢谢!

解决方案 »

  1.   

    public conn GetConnection(){
         dim connStr as string
         dim conn as new adodb.connection
         connStr="provider=sqloledb;data source=192.168.0.11;initial catalog=data;user      id=sa;password=sa"
         conn.connectionString=connStr
         conn.open
         GetConnection=conn
    }
      

  2.   

    来晚了,有人给出答案了.Public rs As New ADODB.Recordset
    Public addFlag As Boolean'******连接数据库*********
    '连接数据库
    Public Function OpenCn() As Boolean
    Dim mag As String
    On Error GoTo strerrmag
    Set conn = New ADODB.Connection
    conn.ConnectionTimeout = 30
    conn.Provider = "sqloledb"
    conn.Properties("data source").Value = frmLogin.txtServer.Text '服务器的名字
    conn.Properties("initial catalog").Value = "ufdata_" & frmLogin.txtZT.Text & "_" & frmLogin.txtND.Text           '库名
    conn.Properties("integrated security").Value = "SSPI"   '登陆类型
    conn.Properties("user id").Value = frmLogin.txtUserName.Text
    conn.Properties("password").Value = frmLogin.txtPassword.Text
    conn.Open
    OpenCn = True
    addFlag = True
    Exit Function
    strerrmag:
        mag = "Data can't connect"
        Call MsgBox(mag, vbOKOnly, "Error:Data connect")
        addFlag = False
        Exit Function
    End Function
    Public Sub cloCn()
    On Error Resume Next
    If conn.State <> adStateClosed Then conn.Close
    Set conn = Nothing
    End SubPublic Function openRs(ByVal strsql As String) As Boolean   '连接数据库记录集
    Dim mag As String
    Dim rpy As Boolean
    On Error GoTo strerrmag
        Set rs = New ADODB.Recordset
        If addFlag = False Then rpy = True
        With rs
        .ActiveConnection = conn
        .CursorLocation = adUseClient
        .CursorType = adOpenKeyset
        .LockType = adLockOptimistic
        .Open strsql
        End With
        addFlag = True
        openRs = True
        End
        'Exit Function
    strerrmag:
        mag = "data not connect"
        Call MsgBox(mag, vbOKOnly, "error:connect")
        openRs = False
        End
        'Exit Function
    End Function
    Public Sub cloRs()
    On Error Resume Next
    If rs.State <> adStateClosed Then rs.Clone
    Set rs = Nothing
    End Sub
      

  3.   

    在public sub classname_intialize()中可以打开conn,classname_Terminate()中可以释放conn,
    public property set(rs as adodb.recordset)
          set recordset=rs 'recorset应该是类的局部变量,这种方法好像要设置数据源
      

  4.   

    楼主的问题非常简单,根本没有那么复杂,你要共享 RECORDSET 唯一要做的就是在普通模块的公共声明段用 PUBLIC RS AS NEW ADODB.RECORDSET
    声明一个公共变量,然后随便你在哪里打开 RS ,都可以一直开着
      

  5.   

    同意[changechange(http://access911.net 是我的个人网站,欢迎光临) ]的看法!