Ms access 强制短文本字段始终为X个字符

Ms access 强制短文本字段始终为X个字符,ms-access,ms-access-2013,Ms Access,Ms Access 2013,我试图在查询中使用IIF()语句将短文本字段更新为始终为4个字符。这是我的语法,但是 SELECT DISTINCT IIf(Len([User ID] = 1), "000" & [User ID], IIf(Len([User ID] = 2), "00" & [User ID], IIf(Len([User ID] = 3), "0" & [User ID], [User ID]))) AS ST FROM _TestData; 但是,无论数据长度如何,它似乎都会

我试图在查询中使用
IIF()
语句将短文本字段更新为始终为4个字符。这是我的语法,但是

SELECT DISTINCT IIf(Len([User ID] = 1), "000" & [User ID], IIf(Len([User ID] = 2), "00" & [User ID], IIf(Len([User ID] = 3), "0" & [User ID], [User ID]))) AS ST
FROM _TestData;

但是,无论数据长度如何,它似乎都会向数据添加0?

如果
[User ID]
是数字,请尝试以下操作:

SELECT DISTINCT Format([User ID], "0000") AS ST
FROM _TestData;
更新

没有注意到该字段是短文本。在这种情况下

SELECT DISTINCT Format(CLng(Nz([User ID],0)), "0000") AS ST
FROM _TestData;

如果
[User ID]
是数字,请尝试以下操作:

SELECT DISTINCT Format([User ID], "0000") AS ST
FROM _TestData;
更新

没有注意到该字段是短文本。在这种情况下

SELECT DISTINCT Format(CLng(Nz([User ID],0)), "0000") AS ST
FROM _TestData;

可以这么简单:

SELECT DISTINCT Right("000" & [User ID], 4) AS ST
FROM TestData;

可以这么简单:

SELECT DISTINCT Right("000" & [User ID], 4) AS ST
FROM TestData;

回答得好!添加一个额外的零来解释长度为零的字符串,但这可能是冗余的好答案!为长度为零的字符串添加一个额外的零,但这可能是多余的