我试图找到一种方法来执行以下操作:
我想为某个文本框设置两种不同的格式。为此,我完成了以下操作:用户在表单文本框中键入一个或两个数字(他们的输入和格式都是"#,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>
&#13;
显示为:
If [yn]=False Then
SetValue
Item = [text0].[format]
Expression = #,0 & " kg/bag"
Else
SetValue
Item = [text0].[format]
Expression = #,0 & " %"
End if
任何人都可以给我一个关于这个去哪里的提示吗?谢谢!!
P.S。逗号是区域设置中的小数点分隔符!
答案 0 :(得分:0)
您并非真正需要更改格式,只能将数值与单位(kg / bag或%)连接起来。
使用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 & "%")