-1

关于这个未解决的问题:

Access 中的 Application.ScreenUpdating

我还注意到,当导出到 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
4

1 回答 1

1

您可能不想在运行时更改报表元素的.valueor.text属性,因为正如您(和我)所发现的那样,它会导致值不显示(如果我没记错的话,我发现只有最后一个值是我以这种方式设置的将显示在完成的报告上)。

什么应该起作用(假设您已经逐步完成并验证您的变量按预期分配)是.ControlSource通过类似的方式设置属性

myObject.ControlSource = "=" & "'" & myString & "'"

用 myObject 和 myString 替换。我猜是因为.value并且.text在打印之前会重新评估,但希望真正知道发生了什么的人可以提供适当的解释。

于 2013-09-09T14:40:39.833 回答