描述:
  本文介绍另一种流行的一种VB程序打印水晶报表的方法. 
环境: MS SQL SERVER 2000  /  VB6  /  CRYSTAL REPORT8.5 
步骤
1: 建立ODBC连接 
2: 创建一个为Crystal Report报表文件 
3: 加载Microsoft ActiveX Data Objects Library 至项目的References 中 
4. 创建VB 设计(Designer) , 通过open existing file的方式把Crystal Report报表文件加载进来.
   如果报表条件从画面输入需要写一些简单程序, 举例
Dim adoRs As ADODB.Recordset
Private Sub Report_Initialize() 
SQL$ = "select *  from view_XXXX where XXXX "
‘根据画面,重新获得where条件’ 
Set adoRs = CreateObject("adodb.recordset")
adoRs.Open SQL$, "Provider=MSDASQL.1;Persist Security Info=False;Data Source=odbc_sales", adOpenKeyset, adLockBatchOptimistic
Database.SetDataSource adoRs
End Sub 
Private Sub Report_Terminate()
    Set adoRs = Nothing
End Sub 
5: 创建VB画面(Form) ,加入Crystal Report Viewer控件
   一些简单程序, 举例
Dim RptReportName As Rpt_ReportName ‘RptReportName is name of designer
   Private Sub Form_Load()
        CRViewer1.ReportSource = RptReportName 
       CRViewer1.ViewReport
End Sub 
总结:
   这个方法实现了VB程序对水晶报表的控制, 但是在可扩展性方面不如前一种有效,任何报表的格式改动,需要编译整个项目L