为啥值没有从报告中导出 - Access 2007
Posted
技术标签:
【中文标题】为啥值没有从报告中导出 - Access 2007【英文标题】:Why Are Values not exporting from report - Access 2007为什么值没有从报告中导出 - Access 2007 【发布时间】:2013-09-09 07:17:22 【问题描述】:关于这个未解决的问题:
Application.ScreenUpdating in Access
我还注意到,当导出到 PDF 或 Excel 时,持续时间值没有出现(缺少/空白()。下面请找到我的持续时间值的 VBA 代码:
Private Sub Detail_Paint()
Dim TestString As String
TestString = Me.Duration1.Value
Dim TestArray() As String
TestArray = Split(TestString, ":")
Dim Hours As String
Dim Minutes As String
Dim Seconds As String
Dim HoursMinutes As Integer
Dim MinutesMinutes As Integer
Dim SecondsMinutes As Integer
HoursMinutes = CInt(TestArray(0)) * 60
MinutesMinutes = CInt(TestArray(1))
SecondsMinutes = CInt(TestArray(2)) / 60
Dim TimeInMinutes As Integer
TimeInMinutes = HoursMinutes + MinutesMinutes + SecondsMinutes
Me.Duration.Value = TimeInMinutes
End Sub
有什么想法吗?如果您有时间,请查看上一个未解决的问题!谢谢!
添加细节:
问题在于,导出 exel 或 PDF 文件时,不会出现持续时间值,因为持续时间是 VBA 中从数据库中的另一个字段派生的字符串变量。我不知道为什么它显示在报告视图中而不显示在打印预览中
我也尝试过使用 .ControlSource。换句话说,我尝试使用下面的代码。现在的问题是,只要我运行它,Access 就会出现干扰。我无法理解这段代码有什么问题。
Private Sub Detail_Paint()
Dim TestString As String
TestString = Me.Duration1
Dim TestArray() As String
TestArray = Split(TestString, ":")
Dim HoursMinutes As Integer
Dim MinutesMinutes As Integer
Dim SecondsMinutes As Integer
HoursMinutes = CInt(TestArray(0)) * 60
MinutesMinutes = CInt(TestArray(1))
SecondsMinutes = CInt(TestArray(2)) / 60
Dim TimeInMinutes As Integer
TimeInMinutes = HoursMinutes + MinutesMinutes + SecondsMinutes
Me.Duration.ControlSource = "=" & "'" & TimeInMinutes & "'"
End Sub
【问题讨论】:
Application.ScreenUpdating in Access的可能重复 那个帖子的错误可能是hoopzbarkley在他的回复中所说的,如果是这种情况我会自己回复,但这是另一回事 【参考方案1】:您可能不想在运行时更改报表元素的 .value
或 .text
属性,因为正如您(和我)发现的那样,它会导致值不显示(如果我没记错的话,我发现只有我以这种方式设置的 last 值会显示在完成的报告上)。
什么应该起作用(假设您已经逐步完成并验证您的变量按预期分配)是通过类似的方式设置 .ControlSource
属性
myObject.ControlSource = "=" & "'" & myString & "'"
用 myObject 和 myString 替换。我猜是因为 .value
和 .text
在打印前会重新评估,但希望真正知道发生了什么的人可以提供适当的解释。
【讨论】:
我明天早上试试,告诉你!奇怪的事实! 现在的问题.. 卡住了。以上是关于为啥值没有从报告中导出 - Access 2007的主要内容,如果未能解决你的问题,请参考以下文章
通过 VBA 自动使用查询从 Ms Access 2007 生成报告