[水晶报表]以前做好的报表,当数据库名变了怎么办? 以前做好的报表,当数据库名变了在不修改报表的情况下在程序中怎么处理可以使报表还可用? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 修改ADO连接ADO属于OLE DB 是数据集层的可你的数据是数据源层的 所以不会有任何影响,只修改连接字符串就可以 只要connection状态是open,与数据库名无关 '转自阿泰博客,水晶报表+动态数据源,稍加修改'声明中加入Private objCRApp As New CRAXDRT.Application '水晶报表应用程序对象Private objCRReport As New CRAXDRT.Report '报表对象Private Sub Form_Load() '引用MDAC2.X Dim db As New ADODB.Connection Set db = New ADODB.Connection Dim strCnn As String '数据库连接字符串 strCnn = "Provider=SQLOLEDB.1;Password=;Persist Security Info=false;User ID=sa;Initial Catalog=sql数据库名;Data Source=192.168.1.X" db.CursorLocation = adUseClient db.Open strCnn Dim rst As New ADODB.Recordset Dim props As CRAXDRT.ConnectionProperties '报表数据源参数集 Dim prop As CRAXDRT.ConnectionProperty '报表数据源参数 '-------------------------------------------------- '构建与定义的记录集对应的数据集结构来模拟一次数据库操作 '以下的操作可以替换成任意的过程,最终目的就是处理成一个记录集 '作为报表的数据来源 '-------------------------------------------------- Set rst = New ADODB.Recordset rst.Open 临时表, db, adOpenKeyset, adLockOptimistic '创建报表 '加载报表模板 Set objCRReport = objCRApp.OpenReport(App.Path & "\Report.rpt", 1) '报表文件名 '清除报表中保持的数据 objCRReport.DiscardSavedData objCRReport.EnableParameterPrompting = False '不进行报表参数提示 '赋给报表数据 objCRReport.Database.SetDataSource rst '-------------------------------------------------- '进行报表显示外观设置 objCRReport.LeftMargin = 260 '左边距 objCRReport.RightMargin = 10 '右边距 CRViewer91.EnableExportButton = True '导出按钮 ' CRViewer91.EnableSelectExpertButton = True ' CRViewer91.DisplayGroupTree = False '不显示组树 ' CRViewer91.EnableAnimationCtrl = False ' CRViewer91.EnableCloseButton = False ' CRViewer91.EnableGroupTree = False ' CRViewer91.EnableHelpButton = False ' CRViewer91.EnableRefreshButton = False CRViewer91.EnableNavigationControls = True '显示总页数和下一页 ' CRViewer91.EnablePopupMenu = False ' CRViewer91.EnableSearchControl = False ' CRViewer91.EnableSearchExpertButton = False '查找 ' CRViewer91.EnableSelectExpertButton = False ' CRViewer91.DisplayTabs = False CRViewer91.DisplayBackgroundEdge = False CRViewer91.EnableAnimationCtrl = False CRViewer91.EnableCloseButton = False CRViewer91.EnableGroupTree = False CRViewer91.EnableHelpButton = False CRViewer91.EnableRefreshButton = False CRViewer91.EnableSearchExpertButton = False CRViewer91.EnableSelectExpertButton = False '指定报表来源 CRViewer91.ReportSource = objCRReport '显示报表 CRViewer91.ViewReport rst.close Set rst = NothingEnd Sub 用vb.net怎么让一段字符亮化或润色 2个VC函数, 谁帮看看VB的函数调用声明哪里错了 请帮忙看下.继续请教SQL奇怪的问题 VB怎样用查找替换批量修改文件夹内所有的文件名 还是多菜单共用一个按钮的问题1 如何加密中英文混合信息? 救命啊,关天MSCOMM(串口)的程序 新问题:又是数据库的 请赐教:如何解决VB编程中的版本不兼容. 窗体间传值 新手问一个combobox的小问题 请问一个按钮问题
Private objCRApp As New CRAXDRT.Application '水晶报表应用程序对象
Private objCRReport As New CRAXDRT.Report '报表对象Private Sub Form_Load()
'引用MDAC2.X
Dim db As New ADODB.Connection
Set db = New ADODB.Connection Dim strCnn As String '数据库连接字符串
strCnn = "Provider=SQLOLEDB.1;Password=;Persist Security Info=false;User ID=sa;Initial Catalog=sql数据库名;Data Source=192.168.1.X" db.CursorLocation = adUseClient
db.Open strCnn Dim rst As New ADODB.Recordset Dim props As CRAXDRT.ConnectionProperties '报表数据源参数集
Dim prop As CRAXDRT.ConnectionProperty '报表数据源参数 '--------------------------------------------------
'构建与定义的记录集对应的数据集结构来模拟一次数据库操作
'以下的操作可以替换成任意的过程,最终目的就是处理成一个记录集
'作为报表的数据来源
'--------------------------------------------------
Set rst = New ADODB.Recordset rst.Open 临时表, db, adOpenKeyset, adLockOptimistic '创建报表
'加载报表模板
Set objCRReport = objCRApp.OpenReport(App.Path & "\Report.rpt", 1) '报表文件名 '清除报表中保持的数据
objCRReport.DiscardSavedData objCRReport.EnableParameterPrompting = False '不进行报表参数提示 '赋给报表数据
objCRReport.Database.SetDataSource rst
'-------------------------------------------------- '进行报表显示外观设置 objCRReport.LeftMargin = 260 '左边距
objCRReport.RightMargin = 10 '右边距 CRViewer91.EnableExportButton = True '导出按钮
' CRViewer91.EnableSelectExpertButton = True
' CRViewer91.DisplayGroupTree = False '不显示组树
' CRViewer91.EnableAnimationCtrl = False
' CRViewer91.EnableCloseButton = False
' CRViewer91.EnableGroupTree = False
' CRViewer91.EnableHelpButton = False
' CRViewer91.EnableRefreshButton = False
CRViewer91.EnableNavigationControls = True '显示总页数和下一页
' CRViewer91.EnablePopupMenu = False
' CRViewer91.EnableSearchControl = False
' CRViewer91.EnableSearchExpertButton = False '查找
' CRViewer91.EnableSelectExpertButton = False
' CRViewer91.DisplayTabs = False CRViewer91.DisplayBackgroundEdge = False
CRViewer91.EnableAnimationCtrl = False
CRViewer91.EnableCloseButton = False
CRViewer91.EnableGroupTree = False
CRViewer91.EnableHelpButton = False
CRViewer91.EnableRefreshButton = False
CRViewer91.EnableSearchExpertButton = False
CRViewer91.EnableSelectExpertButton = False '指定报表来源
CRViewer91.ReportSource = objCRReport
'显示报表
CRViewer91.ViewReport
rst.close
Set rst = NothingEnd Sub