如何在文本字段中添加(?)数字为'0'?

RJI*_*IGO 3 sql ms-access

我在Microsoft Access中有一个文本字段,只包含数字.我不知道这些数字是否以空白字符开头.

我想要做的是,如果字段为'1'我想将其转换为'0001',如果它有'89',那么我想将其转换为'0089',等等.意思是我只想制作字段长度一致4个字符,并用适当的数字'0'填充数字.

我该怎么做呢?我可以使用计算的现场方法吗?如果SQL有一个简单的方法,我可以将数据库转换为SQL.

谢谢.

Han*_*sUp 6

您可以使用该Format()函数转换数字字符串. Format()不关心数字是否以空格开头.

? Format("89","0000")
0089
? Format("    89","0000")
0089
Run Code Online (Sandbox Code Playgroud)

如果要在查询中以该格式显示这些字段值:

SELECT Format([YourTextField],"0000")
FROM YourTable;
Run Code Online (Sandbox Code Playgroud)

如果您想要更改它们的存储方式:

UPDATE YourTable
SET [YourTextField] = Format([YourTextField],"0000");
Run Code Online (Sandbox Code Playgroud)

编辑:@onedaywhen建议使用CHECK CONSTAINT或Validation Rule来确保您的表格以后只接受有效数据.这是一个CHECK CONSTRAINT示例:

ALTER TABLE YourTable
ADD CONSTRAINT four_digits_required
CHECK (
    YourTextField LIKE '[0-9][0-9][0-9][0-9]'
    );
Run Code Online (Sandbox Code Playgroud)

您可以从中运行该语句CurrentProject.Connection.Execute,这是一个ADO对象方法.具有CHECK约束的DDL语句只能从ADO执行.所以你无法执行该语句CurrentDb.Execute,这是一个DAO对象方法.

或者,这应该适用于YourTextField的验证规则属性:

LIKE "[0-9][0-9][0-9][0-9]"
Run Code Online (Sandbox Code Playgroud)

验证规则方法还允许您使用"验证文本"属性在提交的值不可接受时向用户显示消息:

"4 digits required."
Run Code Online (Sandbox Code Playgroud)

在这种情况下,验证文本方法与违反该约束时显示CHECK约束名称的方法大致相同.但是,如果您想要更详细的消息,验证文本可能是更好的选择.