2010-06-07 43 views
-1

我希望输入到特定列的所有数据始终具有尾随逗号,并且我还需要第一个字符始终为逗号。我该怎么做呢?最好的解决方案可能不在vba或sql中,但可能是表的属性?ms-access:为列指定格式

+0

听起来就像你试图在单个字段中存储多个值。请解释*为什么*你想这样做,我猜想这个问题将会消失。您正在询问如何实施特定的解决方案,但并未真正描述您的解决方案旨在解决的实际问题。 – 2010-06-07 20:11:08

+0

戴夫,理论上你是对的,但实际上有时你需要在解决方案上使用bandaids而不是全新的解决方案,我确定你同意 – 2010-06-07 21:19:03

+1

首先,我的名字不是“戴夫”。其次,不,我完全不同意。 -1拒绝澄清一个不好的问题。 – 2010-06-08 20:10:17

回答

1

请考虑您是否确实需要表中存储的前导逗号和尾随逗号。只要您需要,您可以将它们包含在查询中。

SELECT 
    some_text, 
    "," & some_text & "," AS with_commas, 
    IIf(Not IsNull(some_text), "," & some_text & ",", Null) AS with_commas_ignore_nulls 
FROM YourTable; 

如果你真的需要与存储领域的逗号,可以考虑用更新之前事件的形式,要求逗号。

Private Sub txtsome_text_BeforeUpdate(Cancel As Integer) 
    If Len(Me.txtsome_text & vbNullString) > 0 _ 
      And Not Me.txtsome_text Like ",*," Then 
     MsgBox "some_text must start and end with a comma" 
     Cancel = True 
    End If 
End Sub 
1

如果您只是想检查值是否符合要求,并显示错误(如果不符合),那么请使用建议的验证规则,如VeeArr。如果你想纠正值,如果它不符合要求,然后使用VBA事件。

+0

不,我相信要走的路是通过格式属性,但我不知道如何使用它 – 2010-06-07 16:53:51

+1

不太可能。 Format属性不会更改数据的存储方式;只有它是如何显示的。因此,这不会影响您对数据进行查询的能力。 (我假设你想要在表格的一列中创建一个可以使用“%,id,%”进行搜索的元素列表(顺便说一句,这是一个坏主意)。使用Format属性将不会完成这个。 – VeeArr 2010-06-07 16:58:56

+0

+1好点谢谢 – 2010-06-07 17:00:09