将复选框转换为单词

时间:2015-01-06 20:58:37

标签: ms-access

我在MS Access表单中添加了复选框。现在我正在尝试基于这些复选框运行报告。 它们大约是6个复选框。如何将复选框中的复选框翻译为单词?

这方面的一个例子就是表格。披萨配料(洋葱,香肠,橄榄,奶酪,鸡肉,蘑菇)。 我需要能够从6个单独的复选框中打开复选框以创建一个浇头字段。

此外,更改表格以使用某种形式的列表框也是迟到的。

谢谢。

2 个答案:

答案 0 :(得分:1)

使用类似于以下内容的控件来源将新文本字段放入报表中:

=iif([onions],"Onions ", "") & iif([sausage],"Sausage ") & iif([olives],"Olives ","")

等等......

如果您想在两种成分之间使用逗号,您还可以使用以下内容:

=Concat(", ", iif([onions],"Onions", ""), iif([sausage],"Sausage"), iif([olives],"Olives ",""))

在你的一个模块中添加一个与此类似的Concat()函数:

Public Function Concat(Delimiter As String, ParamArray Strings()) As String
    Dim s As Variant, ret As String

    ret = ""
    For Each s In Strings
        If Not IsNull(s) And Not IsEmpty(s) And s <> "" Then
            If ret = "" Then
                ret = s
            Else
                ret = ret & Delimiter & s
            End If
        End If
    Next
    Concat = ret
End Function

答案 1 :(得分:1)

你想要这样的东西:

If chkTopping1 = True then MyTopping1 = "Bacon"
If chkTopping2 = True then MyTopping2 = "Sausage" 
If chkTopping3 = True then MyTopping3 = "Pepperoni"
If chkTopping4 = True then MyTopping4 = "Mushrooms"
If chkTopping5 = True then MyTopping5 = "Meatballs"
If chkTopping6 = True then MyTopping6 = "Olives"


If Not IsNull(MyTopping1) then
AllToppings = MyTopping1 & ", "

If Not IsNull(MyTopping2) then
AllToppings = AllToppings & MyTopping2 & ", " 

If Not IsNull(MyTopping3) then
AllToppings = AllToppings & MyTopping3 & ", " 

If Not IsNull(MyTopping4) then
AllToppings = AllToppings & MyTopping4 & ", "

If Not IsNull(MyTopping5) then
AllToppings = AllToppings & MyTopping5 & ", "

If Not IsNull(MyTopping6) then
AllToppings = AllToppings & MyTopping6

AllToppings现在是您的文本字段。我很积极,这是一种更优雅的方式,但在办公室度过了漫长的一天后,我的大脑有点灼烧。