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

时间:2015-01-31 16:06:45

标签: ms-access events format ms-access-2013 onload-event

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

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

当选择百分比时,我必须另外除以100,但首先我希望整个事情能够发挥作用......我仍然无法做到!

可悲的是,我无法让它工作......这是我当前关于报告的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>
&#13;
&#13;
&#13;

显示为:

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

任何人都可以给我一个关于这个去哪里的提示吗?谢谢!!

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

1 个答案:

答案 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 & "%")