在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了
请高手指教,详细一点,最好有示例或源程序,谢谢!
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了
请高手指教,详细一点,最好有示例或源程序,谢谢!
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
}
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
public property set(rs as adodb.recordset)
set recordset=rs 'recorset应该是类的局部变量,这种方法好像要设置数据源
声明一个公共变量,然后随便你在哪里打开 RS ,都可以一直开着