将多个字段合二为一的计算字段
calculated field combining multiple fields into one
我正在尝试根据 4 位自动编号、名字的第一个字母和姓氏在计算字段中创建一个值以创建用户名。我打算创建类似这样的用户名 -> flastname0001。
这是我用于表达的内容:
LCase(Left([firstname],1) & [lastname]) & Left([idnumber],4)
我在 idnumber 字段的格式中有 0000,并设置为长整数和增量。
无论我怎么尝试,这都是我唯一能得到的结果:
Table:
idnumber = 0001
firstname = John
lastname = Doe
(calculated field) username = jdoe1
有人知道如何让用户名字段创建 jdoe0001 吗?
当源字符串至少包含该数量的字符时,Left()
将为您提供您请求的字符数。但是当源字符串包含的字符少于请求的字符时,Left()
会为您提供源字符串。
这是即时 window 中的示例:
? Left("abcde", 4)
abcd
? Left("a", 4)
a
在您的例子中,您有一个带有格式的数字字段。因此,当字段包含 1 时,该值 显示为 0001。但是,实际存储的值只是 1,没有前导零。当您将字段的值赋给 Left()
时,它会对未格式化的数字进行操作 1:
idnumber = 1
? Left(idnumber, 4)
1
' which is equivalent to this ...
? Left(CStr(idnumber), 4)
1
因为你想要前导零,你可以将你的格式应用到 idnumber 当你将它提供给 Left()
:
? Left(Format(idnumber, "0000"), 4)
0001
但是同时使用 Left()
和 Format()
似乎有点矫枉过正。如果 idnumber 永远不会包含超过 4 位数字,只需 Format()
即可满足您的需求:
? Format(idnumber, "0000")
0001
所以你原来的表达可以变成...
LCase(Left([firstname],1) & [lastname]) & Format(idnumber, "0000")
最后,确保 4 位数的要求是您永远想要的。长整数最多可以容纳 2,147,483,647.
该方法适用于查询中的计算字段。但是如果你想在table中定义一个计算字段,Format()
是不可用的。在这种情况下,您可以连接 "0000" 和 idnumber,并使用 Right()
来获取最后 4 个字符:
? Right("0000" & idnumber, 4)
0001
我正在尝试根据 4 位自动编号、名字的第一个字母和姓氏在计算字段中创建一个值以创建用户名。我打算创建类似这样的用户名 -> flastname0001。
这是我用于表达的内容: LCase(Left([firstname],1) & [lastname]) & Left([idnumber],4)
我在 idnumber 字段的格式中有 0000,并设置为长整数和增量。
无论我怎么尝试,这都是我唯一能得到的结果:
Table:
idnumber = 0001
firstname = John
lastname = Doe
(calculated field) username = jdoe1
有人知道如何让用户名字段创建 jdoe0001 吗?
Left()
将为您提供您请求的字符数。但是当源字符串包含的字符少于请求的字符时,Left()
会为您提供源字符串。
这是即时 window 中的示例:
? Left("abcde", 4)
abcd
? Left("a", 4)
a
在您的例子中,您有一个带有格式的数字字段。因此,当字段包含 1 时,该值 显示为 0001。但是,实际存储的值只是 1,没有前导零。当您将字段的值赋给 Left()
时,它会对未格式化的数字进行操作 1:
idnumber = 1
? Left(idnumber, 4)
1
' which is equivalent to this ...
? Left(CStr(idnumber), 4)
1
因为你想要前导零,你可以将你的格式应用到 idnumber 当你将它提供给 Left()
:
? Left(Format(idnumber, "0000"), 4)
0001
但是同时使用 Left()
和 Format()
似乎有点矫枉过正。如果 idnumber 永远不会包含超过 4 位数字,只需 Format()
即可满足您的需求:
? Format(idnumber, "0000")
0001
所以你原来的表达可以变成...
LCase(Left([firstname],1) & [lastname]) & Format(idnumber, "0000")
最后,确保 4 位数的要求是您永远想要的。长整数最多可以容纳 2,147,483,647.
该方法适用于查询中的计算字段。但是如果你想在table中定义一个计算字段,Format()
是不可用的。在这种情况下,您可以连接 "0000" 和 idnumber,并使用 Right()
来获取最后 4 个字符:
? Right("0000" & idnumber, 4)
0001