为什么值不从报告中导出 - Access 2007

时间:2013-09-09 07:17:22

标签: database vba ms-access report

关于这个未解决的问题:

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中从数据库中的另一个字段派生的String变量。我不知道为什么它会在报告视图中显示而不是在打印预览中显示

我也尝试过使用.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

1 个答案:

答案 0 :(得分:1)

您可能不希望在运行时更改报表元素的.value.text属性,因为正如您(和我)发现的那样,它会导致值无法显示(如果我记得的话)正确地说,我发现只有我设置的 last 值会显示在完成的报告上。)

应该做些什么(假设您已逐步完成并验证您的变量是按预期分配的)是通过类似

的设置来设置.ControlSource属性
myObject.ControlSource = "=" & "'" & myString & "'"

替换myObject和myString。我猜测是因为.value.text在打印之前会被重新评估,但希望实际上知道发生了什么的人可以提供正确的解释。