报表采用ADO连接,写上Sql语句。无法链接数据源可能是某些设置不对,也许sql用户名或密码等。VB6语言 Dim rptApp As New CRAXDRT.Application '报表应用对象 Dim rpt As New CRAXDRT.Report '报表对象 Dim rs As ADODB.Recordset '记录集对象 Dim Conn As ADODB.Connection '连接对象Private Sub Form_Load() '建立连接 Set Conn = New ADODB.Connection Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Persist Security Info=False" '此处我用的是access数据库,你可以改成sql的。 Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient rs.Open YourSqlString, Conn, adOpenKeyset, adLockReadOnly, 1 '获取报表 Set rpt = rptApp.OpenReport(App.Path & "\aa.rpt") '为报表设置记录源 Call rpt.Database.Tables(1).SetDataSource(rs) rpt.DiscardSavedData '报表控件赋报表源 CRViewer1.ReportSource = rpt '显示报表 CRViewer1.ViewReport End Sub
Dim rptApp As New CRAXDRT.Application '报表应用对象
Dim rpt As New CRAXDRT.Report '报表对象
Dim rs As ADODB.Recordset '记录集对象
Dim Conn As ADODB.Connection '连接对象Private Sub Form_Load()
'建立连接
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Persist Security Info=False" '此处我用的是access数据库,你可以改成sql的。 Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open YourSqlString, Conn, adOpenKeyset, adLockReadOnly, 1
'获取报表
Set rpt = rptApp.OpenReport(App.Path & "\aa.rpt") '为报表设置记录源
Call rpt.Database.Tables(1).SetDataSource(rs)
rpt.DiscardSavedData
'报表控件赋报表源
CRViewer1.ReportSource = rpt
'显示报表
CRViewer1.ViewReport
End Sub