在访问数据库中插入以零开头的值

时间:2014-10-21 13:08:57

标签: vba ms-access access-vba

我有一个名为Product_Id的字段(类型字符串),长度为7,从0开始。但是,当通过VBA插入文本类型的表字段时,零没有插入。

这是插入查询:

dbs.Execute "INSERT INTO tablename (PROD_NBR)VALUES (" & prodID & ");"  

2 个答案:

答案 0 :(得分:5)

我想我已经修复了错误 - 你需要用单引号声明这个值。

PROD_NBR是一个字符串类型,表中的字段是文本类型,然后插入变量应该在单引号内声明,然后是双引号,在两个&之间。符号:

dbs.Execute "INSERT INTO tablename (PROD_NBR)VALUES ('" & prodID & "');" 

答案 1 :(得分:0)

回应@ Cherry的答案,以下方法比参数化查询(即准备语句)更乏味。 prodID可以安全地包含引号和其他特殊字符。

    With dbs.OpenRecordset("tablename")
        .AddNew
        .Fields("PROD_NBR") = prodID
        .Update
    End With

关于"从0开始"你的问题的一部分,你想PROD_NBR总是7个字符,填充领先的0'?然后将prodID替换为:

    Right("0000000" & prodID, 7)