【问题标题】:How to maintain formatting for numbers in multi-value combo box?如何维护多值组合框中数字的格式?
【发布时间】:2019-01-19 00:20:46
【问题描述】:

我有一个表格,其中包含格式为“R-”00 的 Number 类型的数据,并且在链接到该表格的表单中,我有一个多组合框。当我去选择这些值时,它们是正确的——它们都具有“R-00n”格式,其中 n 是实际的数字条目(自动编号)。但是,当我进行选择时,该值将读取为 1、2、3 而不是 R-001、R-002、R-003。选择后如何保持格式?

我的查询是 SELECT Reference_ID FROM References 表单中组合框的数据,它正在提取正确的记录,格式正确(“R-001,R-002,R-003”)但是当我做我的选择,表单中的值只有 1、2、3。它会丢弃格式。我需要在我的表单中配置什么来维护自定义格式吗?

谢谢。

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    我想你的意思是ListBox 而不是Combobox,对吧?

    所以我还假设您已经有一些代码可以像这样读取 ListBox 的选定项目:

    Dim item As Variant
    For Each item In YourListBox.ItemsSelected
        Debug.Print YourListBox.ItemData(item)
    Next
    

    关于你的问题:

    您写道,表格字段 Reference_ID 存储数字本身,但因为它是由 "R-"000 格式化的,所以它显示的值类似于 R-003

    所以您已经知道,存储的值本身没有格式化。 您可以通过检索这样的数据来检查:

    ?DLookup("Reference_ID","References","Reference_ID = 3")
    

    它将显示3 而不是R-003

    因此,当您从 ListBoxes 选定项中读取数据时也是如此。

    据我所知,您无法从 ListBox 中读出格式化文本。但是您可以做的是自己格式化读取值:

    Dim item As Variant
    For Each item In YourListBox.ItemsSelected
        Debug.Print Format(YourListBox.ItemData(item), "R-000")
    Next
    

    另一种方法是将 ListBox 的 Row Source 设置为已格式化的值:

    Select Format(Reference_ID, "R-000") From References
    

    【讨论】:

    • 当我尝试在 for 循环中编辑 ListBox 的值时,我收到一个错误,7878,即无法更改数据。
    • 这是一个新问题吗?我回答的主题呢?这个效果好吗?
    • 在您的原始问题中,没有一个词涉及编辑任何值。这是关于阅读和格式化的。也许你终于向我们展示了你的代码制造麻烦,
    • 我已经尝试了 For Each 循环,我将值设置为我的自定义格式,但它给了我 2222 的运行时错误
    • 为什么要将格式应用到列表框?据我了解,它已经正确显示。只有在从列表框中检索基础值时,才不会再格式化您所说的。再次:请向我们展示您的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 2017-03-23
    相关资源
    最近更新 更多