在访问数据库中插入以零开头的值
Posted
技术标签:
【中文标题】在访问数据库中插入以零开头的值【英文标题】:Inserting values starting with zero in access database 【发布时间】:2014-10-21 13:08:56 【问题描述】:我有一个名为 Product_Id
(type string) 的字段,它的长度为 7,从 0 开始。但是在通过 VBA 插入文本类型的表字段时,没有插入零。
这是插入查询:
dbs.Execute "INSERT INTO tablename (PROD_NBR)VALUES (" & prodID & ");"
【问题讨论】:
你能贴一些代码吗? 【参考方案1】:我想我已经修复了错误 - 您需要用单引号声明值。
PROD_NBR
是字符串类型,表中的字段是文本类型,那么插入变量应该在单引号内,双引号内,两个&符号之间声明:
dbs.Execute "INSERT INTO tablename (PROD_NBR)VALUES ('" & prodID & "');"
【讨论】:
...让自己对 SQL 注入攻击敞开大门 @LittleBobbyTables,你有什么建议? 取决于您如何创建prodID
变量,请参见此处:***.com/questions/6764509/…
简单的方法是检查 prodID 是否不包含特殊字符和/或遵循特定格式。当您负担得起时,准备好的陈述是很棒的。【参考方案2】:
响应@Cherry 的回答,以下方法比参数化查询(即准备好的语句)更简单。 prodID
可以安全地包含引号和其他特殊字符。
With dbs.OpenRecordset("tablename")
.AddNew
.Fields("PROD_NBR") = prodID
.Update
End With
关于您问题的“从零开始”部分,您是否希望 PROD_NBR 始终为 7 个字符,并用前导 0 填充?然后将prodID
替换为:
Right("0000000" & prodID, 7)
【讨论】:
以上是关于在访问数据库中插入以零开头的值的主要内容,如果未能解决你的问题,请参考以下文章