【问题标题】:How do I join values from multiple rows into one textbox (or one string)如何将多行中的值加入一个文本框(或一个字符串)
【发布时间】:2019-01-04 20:54:14
【问题描述】:

我的问题很简单,我是 MS Access 的新手。我想将多行的数据放入一个文本框/标签中,并向其中添加一些字符串。我就是无法让它工作。

我有一个table,其中包含一些笔记本电脑及其参数,例如 CPU、CPU 制造商、内核数量等,以及所有使用的 CPU、所有制造商等的表格。

然后我有一份关于所有笔记本电脑及其规格的报告(看起来像 this)。目前,每一列都有自己的文本框,每个自定义字符串都有自己的标签,因为我还没有找到更好的解决方案。

问题是,这种方法看起来很糟糕。我想将每个“组件”放在一行中,在一个文本框/标签中,所以它们都很好地对齐。

我尝试过使用查询,但它们要么显示#error、语法错误,要么显示一些诸如 AMD Core i7 之类的废话。我一直将它们放入“控制源”:

[0_PRODUKTY]![Počet jader CPU]+"core processor "+[0_PRODUKTY]![Značka procesoru]+" "+[0_PRODUKTY]![Procesor]

Počet jamr CPU = CPU 内核数
Značka procesoru = CPU 制造商

【问题讨论】:

    标签: ms-access


    【解决方案1】:

    首先,在 VBA 中连接数据时始终使用 & 符号 & 运算符:& 运算符将始终将数据解释为字符串(在可能的情况下),而加法 + 运算符将对数字数据求和,即使此类数据以字符串形式呈现。


    由于您正在从各个字段编译描述,我建议使用带有控制源的文本框:

    =[0_PRODUKTY]![Počet jader CPU] & "-core processor " & [0_PRODUKTY]![Značka procesoru] & " " & [0_PRODUKTY]![Procesor]
    

    您还可以使用 CStr 函数强制数字字段的字符串转换,该函数将变量参数强制转换为字符串:

    =CStr([Počet jader CPU]) & "-core processor " & [0_PRODUKTY]![Značka procesoru] & " " & [0_PRODUKTY]![Procesor]
    

    请注意,您可能还需要考虑空字段。

    【讨论】:

    • 所以,它现在几乎可以工作了,谢谢您的帮助先生。我的意思是,这些值是正确的,但它们只是数字而不是字符串 - 如图所示 here
    • @uselessguy28 不客气;我已经用一个额外的建议更新了我的答案,希望能解决这个问题。
    • =[Počet jader CPU] & "jádrový procesor " & CStr([Značka procesoru]) & " " & CStr([Procesor]) 产生完全相同的结果,数字而不是字符串:/
    • 也试过了,但它一直要求一个名为0_PRODUKTY的参数。将应该是数字的东西转换成不是数字的东西似乎很奇怪。澄清一下,查找表都包含必要的字符串 - imgur.com/a/FdiLxHz
    • 我从你的截图中了解到,[Počet jader CPU] 是数字,因此应该转换为字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    相关资源
    最近更新 更多