Private Sub Command7_Click()
CTS_sql = "SELECT * FROM cts_sell"
MSFlexGrid1.DataSource = cts_select(CTS_sql)  提示:实时错误'13'类型不匹配.这是为什么呀!大家都来帮我瞧下呀
MSFlexGrid1.Refresh
End Sub
Public Function cts_select(cts_string As String) As ADODB.Recordset
On Error GoTo cts_error
Set CTS_cn = New ADODB.Connection
Set CTS_rst = New ADODB.Recordset
CTS_cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=CTS_vendition;Data Source=cts-t"
CTS_cn.Open
Set CTS_rst.ActiveConnection = CTS_cn
CTS_rst.LockType = adLockOptimistic
CTS_rst.CursorType = adOpenKeyset
CTS_rst.Open Trim(cts_string)
Set cts_select = CTS_rst
Set CTS_rst = Nothing
Set CTS_cn = Nothing
Exit Function
cts_error:
If cts_error(Err.Description) Then
Resume
Else
End
End If
End Function

解决方案 »

  1.   

    不是回答过这个问题吗?把CTS_cn的游标位置设为客户端游标
    CTS_cn.CursorLocation =adUseClient
      

  2.   

    hewei2003:你能不能说详细点呀!我瞧见但是现在我还试不行呀!
    我没分了555555555555555555555555555555555555
      

  3.   

    Set MSFlexGrid1.DataSource = cts_select(CTS_sql)  提示:实时错误'13'类型不匹配.这是为什么呀!大家都来帮我瞧下呀前面加一个Set,因为Recordset是对象吧!
    不知是不是不这样!望试试!
      

  4.   

    Set cts_select = CTS_rst
    'Set CTS_rst = Nothing '把这两句去除掉吧试试
    'Set CTS_cn = Nothing '
    '不知是不是第一句因为只拷贝一个句柄,而没有把Recordset整个对像拷贝过来.猜测中,望多星高人指点迷经
      

  5.   

    找到了!!!呵..........
    最前面加一条
    Dim CTS_SQL As String
    而且前面还是应该加上Set
    Set MSFlexGrid1.DataSource = cts_select(CTS_sql)  提示:实时错误'13'类型不匹配.这是为什么呀!大家都来帮我瞧下呀
      

  6.   

    以前注意了,在VB选项中加选中要求变量声明或在每一个模块中加入这个语句
    Option Explicit