我正在尝试找到一种方法来执行以下操作:
我希望某个文本框具有两种不同的格式。为此,我做了以下操作:用户在表单文本框中键入一个或两位数字(输入和格式均为“#,0; 0; _”),并在右侧带有“是/否”框询问是否是“每袋公斤数”(因此默认情况下是其他度量单位是百分比)的数字字段,则在查看该表格的报告时会触发OnLoad事件,该事件检查是否为“是/否”值是还是不是。如果为“是”,则格式设置为“#.0&“ kg / bag”“,如果否,则将其设置为”#.0&“%”“。
我会当百分比是那些挑另外除以100,但首先我想整个事情工作...这我还是做不到!
不幸的是,我离它起作用还差得远……这是我当前在报告的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
谁能给我一个关于该去哪里的提示?谢谢!!
PS逗号是我在区域设置中的小数点分隔符!
您实际上不需要更改格式,只需将数字值与单位(公斤/袋或%)连接即可。
使用VBA,在OnLoad事件中尝试以下代码(我假设text0控件后面的recordsource字段称为相同的-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事件中,使用嵌入式宏或通过以下一个操作(如果/然后更改为IIF函数)调用外部宏:
SetValue
Item: text0
Expression: =IIF(Forms!yourformname![yn] = False, text0 & " kg/bag", text0/100 & "%")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句