关于这个未解决的问题:
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
答案 0 :(得分:1)
您可能不希望在运行时更改报表元素的.value
或.text
属性,因为正如您(和我)发现的那样,它会导致值无法显示(如果我记得的话)正确地说,我发现只有我设置的 last 值会显示在完成的报告上。)
应该做些什么(假设您已逐步完成并验证您的变量是按预期分配的)是通过类似
的设置来设置.ControlSource
属性
myObject.ControlSource = "=" & "'" & myString & "'"
替换myObject和myString。我猜测是因为.value
和.text
在打印之前会被重新评估,但希望实际上知道发生了什么的人可以提供正确的解释。