VB问题,救助!

来源:百度知道 编辑:UC知道 时间:2024/06/17 11:50:48
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String
'Dim ExecuteSQL As String
On Error GoTo ExecuteSQL_Error
sTokens = Split(SQL)
Set cnn = New ADODB.Connection
cnn.Open ConnectString
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then
cnn.Execute SQL
MsgString = sTokens(0) & "query successful"
Else
Set rst = New ADODB.Recordset
rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
Set ExecuteSQL = rst
MsgString = "查询到" & rst.RecordCount & "条记录"
End If
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function

ExecuteSQL_Error:
MsgString = "查询错误" & Err.Description
R

解决 1 :
请确定是否有加入"Microsoft Active x Data Objects 2.0 Library"
在菜单选Projects -- References -- "Microsoft Active x Data Objects 2.0 Library" . 记住须打钩。

解决 2 :
将Dim cnn As ADODB.Connection 和 Dim rst As ADODB.Recordset 放在最上面(在General内)

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset

Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
Dim sTokens() As String
'Dim ExecuteSQL As String

你有引用ADO对象吗?