为啥值没有从报告中导出 - 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的主要内容,如果未能解决你的问题,请参考以下文章

Access 2007 中的报告和图形 - 计算查询值

access 2007 报告中的 if 语句

通过 VBA 自动使用查询从 Ms Access 2007 生成报告

从oracle数据库中导出大量数据到excel中为啥自动分成了好几个excel文件

Access 2007 - 从子子报表引用子报表值

如何在 MS Access 2007 中使用查询作为报告源?