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 事件上的宏,它被标记为无效表达式:
或者这里是 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 & " kg/bag"</Argument></Action></Statements></If><Else><Statements><Action Name="SetValue"><Argument Name="Item">[Text0].[Format]</Argument><Argument Name="Expression">#,0 & " %"</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 & "%")
我正在尝试找到一种方法来执行以下操作:
我想为某个文本框设置两种不同的格式。为此,我完成了以下操作:用户在表单文本框中键入一个或两个数字(输入和格式均为“#,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 事件上的宏,它被标记为无效表达式:
或者这里是 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 & " kg/bag"</Argument></Action></Statements></If><Else><Statements><Action Name="SetValue"><Argument Name="Item">[Text0].[Format]</Argument><Argument Name="Expression">#,0 & " %"</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 & "%")