'运行时动态链接数据库 Private Sub ReportConnection(ByVal report As Object) ' 声明所需变量。 'TableLogOnInfo提供属性,以便检索和设置表连接选项。 Dim logOnInfo As New CrystalDecisions.Shared.TableLogOnInfo Dim i As Integer ' 对报表中的每个表依次循环。 For i = 0 To report.Database.Tables.Count - 1 ' 设置当前表的连接信息。 logOnInfo.ConnectionInfo.ServerName = "server" logOnInfo.ConnectionInfo.DatabaseName = "database" logOnInfo.ConnectionInfo.UserID = "sa" logOnInfo.ConnectionInfo.Password = "sa" report.Database.Tables.Item(i).ApplyLogOnInfo(logOnInfo) Next i End Sub
a97191() 兄,我按你说的作了,可还是没用啊,显示的还是原来的数据呀?Dim Report As New CrystalReport1Private Sub Form_Load() Report.DiscardSavedData Report.Database.SetDataSource (App.Path & "\200505.mdb") Screen.MousePointer = vbHourglass CRViewer91.ReportSource = Report CRViewer91.ViewReport Screen.MousePointer = vbDefault End SubPrivate Sub Form_Resize() CRViewer91.Top = 0 CRViewer91.Left = 0 CRViewer91.Height = ScaleHeight CRViewer91.Width = ScaleWidth End Sub
那就动态改变 连接对象OleDbConnection 的数据库连接字符串阿' Visual Basic Public Sub ConnectToAccess() Dim conn As New System.Data.OleDb.OleDbConnection() ' TODO: Modify the connection string and include any ' additional required properties for your database. conn.ConnectionString = & _ "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _ "C:\Documents and Settings\username\My Documents\dbFile.mdb" '动态修改这个 Try conn.Open() ' Insert code to process data. Catch ex As Exception MessageBox.Show("Failed to connect to data source") Finally conn.Close() End Try End Sub
要用表才是 dim conn as new ADODB.Connection dim rs as new ADODB.Recordset conn.ConnectionString = & _ "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _ app.path &"200505.mdb" rs.open 表或者查询语句,conn, adOpenStatic, adLockReadOnly Report.DiscardSavedData Report.Database.SetDataSource rs
CRViewer91.ReportSource = Report
CRViewer91.ViewReport
好像不可以吧,
'TableLogOnInfo提供属性,以便检索和设置表连接选项。
Dim logOnInfo As New CrystalDecisions.Shared.TableLogOnInfo
Dim i As Integer
' 对报表中的每个表依次循环。
For i = 0 To report.Database.Tables.Count - 1
' 设置当前表的连接信息。
logOnInfo.ConnectionInfo.ServerName = "server"
logOnInfo.ConnectionInfo.DatabaseName = "database"
logOnInfo.ConnectionInfo.UserID = "sa"
logOnInfo.ConnectionInfo.Password = "sa"
report.Database.Tables.Item(i).ApplyLogOnInfo(logOnInfo)
Next i End Sub
我想在程序中动态的改变数据源,
比如说我的报表是按照200506.mdb数据库做的
我7月份的数据保存为200507.mdb,数据库中的表以及及中的字段结构都一样,只有数据不一样,我现在要将报表的数据源指向200507.mdb,而报表不用变,这我要在程序中怎么改呀,
Report.DiscardSavedData
Report.Database.SetDataSource rs
CRViewer91.ReportSource = Report
CRViewer91.ViewReport
Report.DiscardSavedData
Report.Database.SetDataSource (App.Path & "\200505.mdb")
Screen.MousePointer = vbHourglass
CRViewer91.ReportSource = Report
CRViewer91.ViewReport
Screen.MousePointer = vbDefault
End SubPrivate Sub Form_Resize()
CRViewer91.Top = 0
CRViewer91.Left = 0
CRViewer91.Height = ScaleHeight
CRViewer91.Width = ScaleWidth
End Sub
Public Sub ConnectToAccess()
Dim conn As New System.Data.OleDb.OleDbConnection()
' TODO: Modify the connection string and include any
' additional required properties for your database.
conn.ConnectionString = & _
"Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _
"C:\Documents and Settings\username\My Documents\dbFile.mdb" '动态修改这个
Try
conn.Open()
' Insert code to process data.
Catch ex As Exception
MessageBox.Show("Failed to connect to data source")
Finally
conn.Close()
End Try
End Sub
dim conn as new ADODB.Connection
dim rs as new ADODB.Recordset
conn.ConnectionString = & _
"Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _
app.path &"200505.mdb"
rs.open 表或者查询语句,conn, adOpenStatic, adLockReadOnly
Report.DiscardSavedData
Report.Database.SetDataSource rs