将计算出的 X 数添加到表单输入的方法?

Way to add a calculated number of X's to a form input?

我有某些产品代码 letters/digits 例如53HD6J、HH88WBD3(在 5 到 10 letters/digits 之间变化)。为了让我们的条形码能够正确扫描这些,必须有 13 letters/digits。我不想让用户在每个代码后输入 -XXXX,而是让 Access 计算 13 和代码长度之间的差异,然后用 X 填充剩余部分。这可以通过 vba 或 and 表达式实现吗?

我目前在一个公式中使用大约 6 个 IIF 来用 X 填充剩余的空白,但希望有更简单的方法。


我有一张表格可以输入批号(产品代码)。提交该表格后,它会链接到打印的报告。报告上有那些批号(53HD6J、HH88WBD3)。我想要这个功能的位置是在代码旁边的文本框中,Access 确定代码的长度并计算要添加的剩余 X。这是条形码字体,所以这个文本框是 53HD6JXXXXXXX 所在的位置。希望一切顺利!


所以我已经弄清楚了那部分。我现在的问题是我的条形码字体无论如何都会读取文本并翻译它,所以当批号为空白时条形码会显示(我有四个要输入的批次代码点)。所以我之前得到的是 =IIf([Text31]="",""&[Text31]&"","")似乎工作。希望我能用新的公式继续这个。如果不清楚,请告诉我。 **(“” & & “”是为了扫码)。


我的公式在 IIf 的正上方是错误的。我想到了!忘了我用过'喜欢“*”'。谢谢!

你可以用 String()Left() 做你想做的事。

这是一个来自 Access Immediate window 的例子:

product_code = "53HD6J"
? product_code & String(13, "X")
53HD6JXXXXXXXXXXXXX

? Left(product_code & String(13, "X"), 13)
53HD6JXXXXXXX

根据对您问题的更新,我认为您可以将这种方法用于要显示 "expanded" 产品代码的文本框的控制源。

假设您的报告有一个名为 txtProduct_code 的文本框,其中显示原始产品代码,例如 53HD6J .还有第二个文本框,您要在其中显示具有所需数量 X 个字符的值 (53HD6JXXXXXXX)。

将其用作第二个文本框的控件源属性:

= Left([txtProduct_code] & String(13, "X"), 13)

或者,您可以将其设为报表的记录源查询中的字段表达式。

SELECT
    product_code,
    Left(product_code & String(13, "X"), 13) AS expanded_product_code
FROM YourTable;