是这样的,我写了如下程序: Dim cryat As CRAXDRT.Application
Dim cry2 As CRAXDRT.Report
Dim username As CRAXDRT.TextObject
Dim jin As CRAXDRT.TextObject
Dim sqlxuan As String
Set cryat = New CRAXDRT.Application
Set cry2 = cryat.OpenReport(App.Path & "\report1.rpt")
cry2.DiscardSavedData
sqlxuan = "{xsssmsandxszd.xh}='" & txtxh.Text & "'"
sqlxuan = sqlxuan + " and {xsssmsandxszd.sfnf}='" & combosfnf.Text & "'"
'sqlxuan = sqlxuan + " and {xsssmsandxszd.sjh}='" & txtsjh.Text & "'"
cry2.RecordSelectionFormula = sqlxuan
frmview.CRViewer91.Refresh
frmview.CRViewer91.ReportSource = cry2
frmview.CRViewer91.ViewReport
frmview.Show
可是运行是不是数据不刷新就是登录sql失败,为什么?请指点迷经,谢谢。
Dim cry2 As CRAXDRT.Report
Dim username As CRAXDRT.TextObject
Dim jin As CRAXDRT.TextObject
Dim sqlxuan As String
Set cryat = New CRAXDRT.Application
Set cry2 = cryat.OpenReport(App.Path & "\report1.rpt")
cry2.DiscardSavedData
sqlxuan = "{xsssmsandxszd.xh}='" & txtxh.Text & "'"
sqlxuan = sqlxuan + " and {xsssmsandxszd.sfnf}='" & combosfnf.Text & "'"
'sqlxuan = sqlxuan + " and {xsssmsandxszd.sjh}='" & txtsjh.Text & "'"
cry2.RecordSelectionFormula = sqlxuan
frmview.CRViewer91.Refresh
frmview.CRViewer91.ReportSource = cry2
frmview.CRViewer91.ViewReport
frmview.Show
可是运行是不是数据不刷新就是登录sql失败,为什么?请指点迷经,谢谢。
为:在VB中使用Crystal Report 当采用传SQL的方法(在运行报表的时候直接连接数据库,利用SQL语句进行查询资料的获取;注:另一种方法:VB中可以采用直接传递Recordset 的方式使用Crystal Report)时。在程序的执行过程中去访问当前数据库,也必须要一个访问连接的载体(比如我们使用ADO连接,会通过连接字符串来),其中“.DLL”就是访问数据库的中间载体,对不同的数据库,不同的CrystalReport版本,采用的DLL不一样。
例如Orcal :pdsora7.dll
cry2.DiscardSavedData 之后,打开一个与水晶报表结构相同的或者相像的记录集,并将报表绑定该记录集。Report.DiscardSavedData
Report.Database.SetDataSource rs, 3
Report.ReadRecords