一、在做报表的时候如果用的是odbc,则在程序中无论如何无法转成 用字符串连接的方式来改变报表的连接方式(至少我没有发现)。所以要转换报表的连接方式,通过在水晶报表中设置数据源来更新以前的连接方式可以搞定这步
二、在程序中可以设置报表用字符串来连接数据库。如果不设置的话,水晶报表每次都会跳出一个框让你输入密码,够郁闷的。主要代码如下:(声明代码省略)
Report.Database.Tables(1).ConnectionProperties.DeleteAll
Report.Database.Tables(1).ConnectionProperties.Add "Provider", "SQLOLEDB"
Report.Database.Tables(1).ConnectionProperties.Add "Data Source", "."
Report.Database.Tables(1).ConnectionProperties.Add "Initial Catalog", "LH"
Report.Database.Tables(1).ConnectionProperties.Add "User ID", "sa"
Report.Database.Tables(1).ConnectionProperties.Add "Password", "123456"
Report.Database.Tables(1).ConnectionProperties.Add "Integrated Security", False
至于有哪些属性可以用代码进行循环列出,我就不说了。。
三、网上很多用直接给出数据集的方式,其实也不能改变报表的连接方式,用数据集的一并给出代码
strReportName = "\crystal\rclist.rpt" '定义要引用的rpt文件
Set oRpt = oApp.OpenReport(strReportName, 1)
oRpt.Database.SetDataSource rs
oRpt.ReadRecords
CRViewer1.Refresh
CRViewer1.ReportSource = oRpt
CRViewer1.ViewReport