Access 2013 报表中两种不同格式的字段

Two different formats of field in report Access 2013

我正在尝试找到一种方法来执行以下操作:

我想为某个文本框设置两种不同的格式。为此,我完成了以下操作:用户在表单文本框中键入一个或两个数字(输入和格式均为“#,0;0;_”),右侧有 "yes/no" 框该数字字段询问它是否为 "kg per bag"(因此默认情况下它是另一个测量单位,即百分比),然后在查看该表单的报告时触发 OnLoad 事件,该事件检查是否 yes/no值为是或否。如果 "yes" 则格式设置为 "#.0 & " kg/bag"",如果没有则设置为 "#.0 & " %""。

I will have to additionally divide by 100 when percentages are the ones picked, but first I want the whole thing to work... Which I still can't do!

遗憾的是,我离它的工作还差得很远...这是我当前在报告的 onload 事件上的宏,它被标记为无效表达式:

Link to the image on Imgur

或者这里是 MacroBuilder 代码:

<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<UserInterfaceMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"><UserInterfaceMacro For="Report" Event="OnLoad"><Statements><ConditionalBlock><If><Condition>[yn]=False</Condition><Statements><Action Name="SetValue"><Argument Name="Item">[Text0].[Format]</Argument><Argument Name="Expression">#,0 &amp; " kg/bag"</Argument></Action></Statements></If><Else><Statements><Action Name="SetValue"><Argument Name="Item">[Text0].[Format]</Argument><Argument Name="Expression">#,0 &amp; " %"</Argument></Action></Statements></Else></ConditionalBlock></Statements></UserInterfaceMacro></UserInterfaceMacros>

显示为:

If [yn]=False Then
    SetValue
        Item = [text0].[format]
        Expression = #,0 & " kg/bag"
Else
    SetValue
        Item = [text0].[format]
        Expression = #,0 & " %"
End if

任何人都可以提示我该去哪里吗?谢谢!!

P.S。逗号是我在区域设置中的小数点分隔符!

您实际上不需要更改格式,只需将数值与单位(kg/bag 或 %)连接起来即可。

使用 VBA,在 OnLoad 事件中尝试以下代码(我假设 text0 控件后面的记录源字段被称为相同的 -text0):

If Forms!yourformname![yn] = False Then
    Reports!yourreportname!text0 = Me.text0 & " kg/bag" 
Else
    Reports!yourreportname!text0 = (Me.text0)/100 & "%"
    ' ALTERNATIVELY: Reports!yourreportname!text0.Format = "percent"
End If

或者在 OnLoad 事件中,使用嵌入式宏或通过以下操作调用外部宏(if/then 更改为 IIF 函数):

SetValue 
Item: text0
Expression: =IIF(Forms!yourformname![yn] = False, text0 & " kg/bag", text0/100 & "%")