在VB中调用水晶报表(RPT文件)时用ADO SQL语句控制记录报表显示无效的解决!
代码如下:
Public conn As New ADODB.Connection
Public rs As New ADODB.Recordset
Dim oApp As New CRAXDRT.Application
Dim oRpt As CRAXDRT.Report
Dim exportOpts As CRAXDRT.ExportOptions
Private Sub Form_Load()
conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\baobiao.mdb"
rs.Open "select * from biao Where yields = 100 ", conn, adOpenStatic, adLockReadOnly, adCmdTextScreen.MousePointer = vbHourglass
Set oRpt = oApp.OpenReport(App.Path & "\Report1.rpt")
oRpt.DiscardSavedData
oRpt.Database.SetDataSource rs, 3, 1
oRpt.EnableParameterPrompting = False
CRViewer91.ReportSource = oRpt '启用水晶报表的预览功能
CRViewer91.ViewReport
Screen.MousePointer = vbDefault
End Sub
Private Sub Form_Resize()
CRViewer91.Top = 0
CRViewer91.Left = 0
CRViewer91.Height = ScaleHeight
CRViewer91.Width = ScaleWidth
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set rs = Nothing
Set conn = Nothing
Unload Form2
End Sub
'---------------------------
oRpt.Database.SetDataSource rs, 3, 1换成
For i = 1 To oRpt.Database.Tables.Count '设置报表的数据源
If oRpt.Database.Tables.Item(i).Name = "cBIAO" Then
oRpt.Database.Tables(i).SetDataSource rst
End If
Next
显示的报表数据还是没有改变
请指教这是为什么!!期盼!!!
代码如下:
Public conn As New ADODB.Connection
Public rs As New ADODB.Recordset
Dim oApp As New CRAXDRT.Application
Dim oRpt As CRAXDRT.Report
Dim exportOpts As CRAXDRT.ExportOptions
Private Sub Form_Load()
conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\baobiao.mdb"
rs.Open "select * from biao Where yields = 100 ", conn, adOpenStatic, adLockReadOnly, adCmdTextScreen.MousePointer = vbHourglass
Set oRpt = oApp.OpenReport(App.Path & "\Report1.rpt")
oRpt.DiscardSavedData
oRpt.Database.SetDataSource rs, 3, 1
oRpt.EnableParameterPrompting = False
CRViewer91.ReportSource = oRpt '启用水晶报表的预览功能
CRViewer91.ViewReport
Screen.MousePointer = vbDefault
End Sub
Private Sub Form_Resize()
CRViewer91.Top = 0
CRViewer91.Left = 0
CRViewer91.Height = ScaleHeight
CRViewer91.Width = ScaleWidth
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set rs = Nothing
Set conn = Nothing
Unload Form2
End Sub
'---------------------------
oRpt.Database.SetDataSource rs, 3, 1换成
For i = 1 To oRpt.Database.Tables.Count '设置报表的数据源
If oRpt.Database.Tables.Item(i).Name = "cBIAO" Then
oRpt.Database.Tables(i).SetDataSource rst
End If
Next
显示的报表数据还是没有改变
请指教这是为什么!!期盼!!!
For i = 1 To oRpt.Database.Tables.Count '设置报表的数据源
select case i
case 1
oRpt.Database.SetDataSource rs1_第一个表的记录集
case 2
oRpt.Database.SetDataSource rs1_第二个表的记录集
case....
end select Next
然后在CRViewer91.ViewReport 前加一行doevents建议去阿泰空间看看