【发布时间】:2014-10-21 13:08:56
【问题描述】:
我有一个名为 Product_Id(type string) 的字段,它的长度为 7,从 0 开始。但是在通过 VBA 插入文本类型的表字段时,没有插入零。
这是插入查询:
dbs.Execute "INSERT INTO tablename (PROD_NBR)VALUES (" & prodID & ");"
【问题讨论】:
-
你能贴一些代码吗?
我有一个名为 Product_Id(type string) 的字段,它的长度为 7,从 0 开始。但是在通过 VBA 插入文本类型的表字段时,没有插入零。
这是插入查询:
dbs.Execute "INSERT INTO tablename (PROD_NBR)VALUES (" & prodID & ");"
【问题讨论】:
我想我已经修复了错误 - 您需要用单引号声明值。
PROD_NBR是字符串类型,表中的字段是文本类型,那么插入变量应该在单引号内,双引号内,两个&符号之间声明:
dbs.Execute "INSERT INTO tablename (PROD_NBR)VALUES ('" & prodID & "');"
【讨论】:
prodID 变量,请参见此处:stackoverflow.com/questions/6764509/…
响应@Cherry 的回答,以下方法比参数化查询(即准备好的语句)更简单。 prodID 可以安全地包含引号和其他特殊字符。
With dbs.OpenRecordset("tablename")
.AddNew
.Fields("PROD_NBR") = prodID
.Update
End With
关于您问题的“从零开始”部分,您是否希望 PROD_NBR 始终为 7 个字符,并用前导 0 填充?然后将prodID替换为:
Right("0000000" & prodID, 7)
【讨论】: