📄 datareport的内容不随数据库的内容变化.txt
字号:
Requery方法!
也可以直接使用ADODB.Recordset!不使用DataEnvironment!例:
...
public adoRecordsetX as ADODB.Recordset
...
Private Sub DataReport_Initialize()
adoRecordsetX.Requery
Set DataReport1.DataSource = adoRecordsetX '设置 DataReport 的数据源
...
'绑定某字段
Me.Sections.Item("Section1").Controls.Item("text1").DataField=adoRecordsetX.Fields.Item(0).Name
...
End Sub
<END>
:
在你们有关上述问题的回答,我想再增加一种更简单的解决办法。
1.在datareport 报表中设置datamember和datasource为空。
2.将以前绑定的RptTextBox的datamember设为空,保留原来的datafield.
3.在打印操作中增加以下代码:
Dim db As Connection
Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=" + App.path + "\finance.mdb" + ";"
Set tb = New Recordset
tb.Open "select * from dailyfeeprint", db, adOpenStatic, adLockOptimistic
With tb
.AddNew
![工号] = Combo1(0).Text
![姓名] = txtFields(0).Text
![交费日期] = txtFields(1).Text
.........
.Update
End With
Set data1.Recordset = tb
Set datareport1.DataSource = data1
datareport1.Show
datareport1.PrintReport
其实这个问题也搞得我很头疼,希望能让其他人不再头疼。
<END>
直接Requery 一下就可以了。
Private Sub DataReport_Initialize()
DataEnvironment1.rsCommand1.Requery
End Sub
<END>
这几天我也是为这个问题而烦恼!直到今天早上,我无意中想到把数据环境也跟报表一样Unload 一下,没想到真的可行!
DataReport3.Caption = Ipt & "用户费用"
DataReport3.Title = Ipt & "用户费用"
DataReport3.Show vbModal, Me
Unload DataReport3
Unload DataEnvironment1
<END>
以上方法还需补充一下
1 对DataEnvironment的datamember的属性设置为空。
2 对datareport报表中的rpttext控件的datasouce和recordset重新进行绑定(需要在报表初始化事件中用代码实现)
<END>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -