在数据报表程序里
我用如下代码时,报表预览成功:
    '连接数据库
    Set cn = New ADODB.Connection
    cn.ConnectionString = "Driver={SQL Server};server=localhost;uid=;pwd=;database=DLFYSQL"
    cn.Open而用如下代码时报表预览能弹出但是一片空白:
--------
    '连接数据库
     Set cn = New ADODB.Connection
     cn.ConnectionString = "File Name=C:\测试.udl"
     cn.Open其中该udl里的代码是:
[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DLFYSQL;Data Source=SUPERNB这是为什么呢?请教诸位,再次拜谢了。

解决方案 »

  1.   

    我发现这些代码之后的那个
    '设定记录集
    Set rs = cmd.Execute()根本没有运行。
      

  2.   

    可能是游标问题,尝试cn.open前加一行:
    cn.CursorLocation =adUseClient 
      

  3.   

    不知道你的udl怎么建立的,测试能连接到数据库吗?
      

  4.   

    加了,可是还是一片空白,和我把那句Set rs = cmd.Execute()注释掉是一个效果,
    所以我在想有没有别的方法运行cmd,
    再帮我想想吧,谢谢大哥。
      

  5.   

    概要
    Microsoft 数据链接提供要通过 OLEDB 提供程序或一个开放式数据库连接 (ODBC) 驱动程序测试一个 ActiveX 数据对象 (ADO) 连接到数据源简单接口。 连接信息指定时设置和测试的 ADO 连接使用数据链接存储在指定通用数据链接 (.udl) 文件。 可以通过 .udl 文件的路径指派给其 ConnectionString 属性中 " 文件名称 " 参数来指定 .udl 文件作为源的连接属性对于 ADOConnection 对象。 Visual Basic 6.0 中数据环境提供图形用户界面 (GUI) 来安装 ADO 连接 和 Command 对象用于使用 VisualBasic 应用程序中。 数据环境连接通常由导航通过选项卡 属性 对话框并指定需连接特性设置对象的属性如 OLEDB 提供程序以使用, 数据库为连接到数据库用户 ID 和密码, 等等。 .udl 文件还可用于指定连接属性对于数据环境连接对象。 但是, 数据环境连接对象的 属性 对话框不提供选项以选择一个 .udl 文件作为源的连接属性。 
    回到顶端更多信息
    需要手动设置其属性列表框通过选择数据环境连接对象并按 F 4 键 (访问) 中 ConnectionSource 属性来指定作为源的连接属性对于数据环境连接对象, .udl 文件。ConnectionSource 属性需要一个 ADO 连接字符串的格式被设置 文件名 = < 路径到 .udl 文件 >。 例如, C:\ 文件夹替换为连接到 SQL Server PUBS 示例数据库, PUBS.UDL 名称中有 .udl 文件会分配到的数据环境连接对象以作为源的连接属性指定 PUBS.UDL ConnectionSource 属性: 假设以下字符串 File Name=C:\PUBS.UDLhttp://support.microsoft.com/kb/274536/zh-cn#top
      

  6.   

    嗯,是的,测试能连到数据库上,
    建的时候我就是新建一个文本文件,然后把扩展名改成.udl的,双击之,在里面做上相应的设置。
    我觉得建立udl出问题的可能性不大,因为用这个udl打印不调用存储过程的报表就显示正常,可调用有
    存储过程的报表就一片空白。
      

  7.   

    [oledb] 
    ; Everything after this line is an OLE DB initstring 
    Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DLFYSQL;Data Source=SUPERNB 
    -----
    改一下试试:[oledb]
    ; Everything after this line is an OLE DB initstring
    Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=DLFYSQL;Data Source=SUPERNB 
      

  8.   

    谢谢老哥,可能是SQLOLEDB不太支持存储过程的原因,
    我拐了个弯,改用ODBC driver就好了。
    即:
    [oledb]
    ; Everything after this line is an OLE DB initstring
    Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Extended Properties="DSN=DLFYSQL;UID=sa;APP=Microsoft(R) Windows(R) Operating System;WSID=SUPERNB;DATABASE=DLFYSQL";Initial Catalog=DLFYSQL