就是要更新记录集.不更新怎么行. 可以每次关闭报表时都同时关闭数据源.打开报表时首先重新读取记录集. 例如: 1.If DataEn.rsComAllServer.State = adStateOpen Then DataEn.rsComAllServer.Close '关闭Recordset DataEn.ComAllServer '重新读记录集 2.If DataEn.rsComAllServer.State = adStateOpen Then DataEn.rsComAllServer.Close '关闭Recordset
更新数据后,把数据源也requery一次
Option ExplicitPrivate rsTemp As ADODB.RecordsetPrivate Sub DataReport_Initialize() Set rsTemp = New ADODB.Recordset rsTemp.CursorLocation = adUseClient
rsTemp.Open "SELECT * FROM [a]", "DSN=MS Access Database;DBQ=g:\a.mdb" Set Me.DataSource = rsTemp
End SubPrivate Sub DataReport_Terminate() rsTemp.Close Set rsTemp = Nothing
End Sub
这个是DRD的老问题了,动态产生报表实例即可 例: public sub cmdPrint_Click() dim DEDPrint as MyDED 'MyDED是你的数据环境 dim DRDPrint as MyDRD 'MyDRD是你的报表设计器 set DRDPrint=new MyDRD set DEDPrint.Datasource=DRDPrint '这句可能不对,时间久了记不清了,就是设置数据源的意思 DRDPrint.Show End Sub()
可以每次关闭报表时都同时关闭数据源.打开报表时首先重新读取记录集.
例如:
1.If DataEn.rsComAllServer.State = adStateOpen Then DataEn.rsComAllServer.Close '关闭Recordset
DataEn.ComAllServer '重新读记录集
2.If DataEn.rsComAllServer.State = adStateOpen Then DataEn.rsComAllServer.Close '关闭Recordset
rsTemp.CursorLocation = adUseClient
rsTemp.Open "SELECT * FROM [a]", "DSN=MS Access Database;DBQ=g:\a.mdb"
Set Me.DataSource = rsTemp
End SubPrivate Sub DataReport_Terminate() rsTemp.Close
Set rsTemp = Nothing
End Sub
例:
public sub cmdPrint_Click()
dim DEDPrint as MyDED 'MyDED是你的数据环境
dim DRDPrint as MyDRD 'MyDRD是你的报表设计器
set DRDPrint=new MyDRD
set DEDPrint.Datasource=DRDPrint '这句可能不对,时间久了记不清了,就是设置数据源的意思
DRDPrint.Show
End Sub()