Public Function ExecuteSQL(ByVal SQL_
As String, MsgString As String)_
As ADODB.Recordset
'传递参数SQL传递查询语句,  MsgString 传递查询信息
'自身以一个数据集对象的形式返回
Dim cnn As ADODB.Connection
'定义连接
Dim rst As ADODB.Recordset
'定义字符串
Dim sTokend() As String
'异常处理
On Error GoTo ExecuteSQL_Error
'用Split 函数长生一个包含各个子串的数组
sTokend = Split(SQL)
'创建连接
Set cnn = New ADODB.Connection
'打开连接
cnn.Open ConnectString
'判断字符串中是否含有指定内容
If InStr("INSERT,DELETE",_
UCase$(sTokens(0)) Then
'执行查询语句
cnn.Execute SQL
'返回查询信息
MsgString = sTokend(0) &_
"query successful"
Else
'创建数据集对象
Set rst = New ADODB.Recordset
'返回查询结果
rst.Open Trim$(SQL),cnn,_
adOpenKeyset ,_
adLockOptimistic
'rst.MoveLast  'get RecordCount
'返回记录集对象
Set ExecuteSQL = rst
MsgString = "查询到" & rst.RecordCount &_
"条记录"
End If
ExecuteSQL_Exit:
'清空数据集对象
Set rst = Nothing
'中断连接
Set cnn = Nothing
Exit Function
'错误类型判断
ExecuteSQL_Error:
MsgString = "查询错误:" &_
Err.Description
Resume ExecuteSQL_Exti
End FunctionPublic Function ConnectString()_
As String
'返回一个数据库连接
ConnectString = "FileDSN=studentinfo.dsn;UID=s a;PWD="
End Function
上面是创建模块所写入的代码
在执行的时候会出现这样的错误提示:
缺少列表分隔符或 )
ps:凡是有"_"这个符号的所在两行都显示红色!!
请问大虾是不是格式错误了!!弄清楚的话加分!!!绝对!!

解决方案 »

  1.   

    &后面接的_符号之间加入一个空格试试
      

  2.   

    &前边和_前边都加空格,和前边的单词分开就可以了
    因为这两个符号是格式转换函数
      

  3.   

    LY,"空格+_"是说以这里的代码没有完,下面的代码续行啊!通常是程序在很长时用的。
    public funciton GetMember(byval strAge as string , _
                            byval strName as string , _
                            byval strSex as string , _  
                 , _
                 , _
                            byval datAddDate as date)
    你上面的程序没有必要要续行啊!
      

  4.   

    谢谢你们的回答!但是改了"_"和"&"之间的空格之后运行时又出现了编译错误:
    Public Function ExecuteSQL(ByVal SQL _
    As String, MsgString As String) _
    As ADODB.Recordset
    用户定义类型未定义。
    这样的!!请问我还要修改些什么啊?各位大哥大姐!!
      

  5.   

    改成这样试试,我原来也碰到这样的问题,Public Function ExecuteSQL(ByVal SQL As String, _
                                     MsgString As String _
                               ) As ADODB.Recordset注意续行符"_"前面必须有一个空格,否则报错
      

  6.   

    引用Micrsoft ActiveX Data Objects 2.6 Libary
      

  7.   

    回ejc2001(易水寒) 兄
    那个问题已经解决了……但是还是有
    Public Function ExecuteSQL(ByVal SQL _
    As String, MsgString As String) _
    As ADODB.Recordset
    用户定义类型未定义。
    这样的错误,请问为什么啊?
      

  8.   

    回tripman(当牛粪遇上鲜花)兄
    引用Micrsoft ActiveX Data Objects 2.6 Libary
    如何引用哦?
      

  9.   

    不知道你用的什么系统,如果是XP,应该已经预先安装Micrsoft ActiveX Data Objects 2.7了,在2000下默认安装的是2.5版,你要先下载2.6版的MDAC安装.
    引用方法:
    菜单-->project(工程)-->references(引用),然后在列表选择Micrsoft ActiveX Data Objects 2.6 Libary
      

  10.   

    回ejc2001(易水寒) 兄
    我用的是2003系统啊
    和2000的一样吧?
      

  11.   

    可以了!!谢谢ejc2001(易水寒)、tripman(当牛粪遇上鲜花)、Areyan(Areyan)、
    jinfeng003() 、jjkk168(老加班的人--好好学习,天天吃饭) !!!
      

  12.   

    引用方法:
    菜单-->project(工程)-->references(引用),然后在列表选择Micrsoft ActiveX Data Objects 2.6 Libary