'这样试下
Public Function ConnectString() As String '
  ConnectString = "provider=sqloledb.1;data source=192.168.12.XX\sunrise;uid=sa;pwd=XXX;database=db_Sunrise"
End Function
'窗体代码
Dim rs As new adodb.Recordset
rs.Open "execute sp_scjdxx", ConnectString, adOpenKeyset
if rs.RecordCount > 0 then
   Set ms.DataSource = rs
end if

解决方案 »

  1.   

    1楼的兄弟,还是不行呀   是不是存储过程有问题?
    我在 SQL 查询分析器 可以执行呀
      

  2.   

    我认为不是省略了就行的原因,而是R你原来用的是byval,现在是byref的原因
      

  3.   

    还有 上述的存储过程 在 为什么在 WIN2008 系统 SQL 8.0 中无法运行?? 
      

  4.   

    在 win2008 系统中 SQL2000 中无法运行
      

  5.   

    CREATE PROCEDURE xx_scjdxx  as
    declare @sqls varchar(8000)
    select 
      @sqls=isnull(@sqls+',','')
      +'max(case when v_scjdb.daoc='+ ltrim(daoc)+' then v_scjdb.daoc end) as [道次'+ltrim(daoc)+'],'
      +'max(case when v_scjdb.daoc='+ ltrim(daoc)+' then v_scjdb.gg end) as [规格'+ltrim(daoc)+'],'
      +'max(case when v_scjdb.daoc='+ ltrim(daoc)+' then v_scjdb.zs end) as [支数'+ltrim(daoc)+'],'
      +'max(case when v_scjdb.daoc='+ ltrim(daoc)+' then v_scjdb.jdrq end) as [日期'+ltrim(daoc)+']'
    from
    (select distinct daoc from v_scjdb) ttt
    set @sqls='select v_sckhxx.kh as 框号,v_sckhxx.khmc as 客户名称,v_sckhxx.htbh as 合同号,v_sckhxx.gg as 成品规格,v_sckhxx.khrq,'
        +@sqls
        +' from v_sckhxx,v_scjdb where v_scjdb.kh=v_sckhxx.kh group by v_sckhxx.khrq,v_sckhxx.htbh,v_sckhxx.kh,v_sckhxx.khmc,v_sckhxx.gg'
    exec (@sqls)
    GO检查语法无错误。在WIN2003 系统下运行无问题,在WIN2008系统呀 运行错误提示如下:
    服务器:消息 156,级别 15,状态 1,行1
    在关键字 ‘THEN’附近有语法错误。
      

  6.   

    SQL 8 不就是 SQL 2000么?!
      

  7.   

    我只知道 sql 6.5,sql 7.0,sql 2000, 2005, 2008.
    sql 2000 的版本号就是 8.0 吧?