Ms access 在access数据库中插入以零开头的值
我有一个名为Product_Idtype string的字段,它的长度为7,以0开头。但是,当通过VBA插入文本类型的表字段时,不会插入零 这是插入查询:Ms access 在access数据库中插入以零开头的值,ms-access,vba,Ms Access,Vba,我有一个名为Product_Idtype string的字段,它的长度为7,以0开头。但是,当通过VBA插入文本类型的表字段时,不会插入零 这是插入查询: dbs.Execute "INSERT INTO tablename (PROD_NBR)VALUES (" & prodID & ");" 我想我已经修复了这个错误-您需要用单引号声明该值 PROD_NBR为字符串类型,表中的字段为文本类型,则插入变量应在单引号内、双引号内以及两个符号之间声明(&S): dbs.Exe
dbs.Execute "INSERT INTO tablename (PROD_NBR)VALUES (" & prodID & ");"
我想我已经修复了这个错误-您需要用单引号声明该值 PROD_NBR为字符串类型,表中的字段为文本类型,则插入变量应在单引号内、双引号内以及两个符号之间声明(&S):
dbs.Execute "INSERT INTO tablename (PROD_NBR)VALUES ('" & prodID & "');"
响应@Cherry的回答,下面的方法没有参数化查询(也称为prepared语句)那么繁琐。prodID可以安全地包含引号和其他特殊字符
With dbs.OpenRecordset("tablename")
.AddNew
.Fields("PROD_NBR") = prodID
.Update
End With
关于问题的零开头部分,您是否希望PROD_NBR始终为7个字符,并用前导0填充?然后将prodID替换为:
你能发布一些代码…让自己对SQL注入敞开大门吗attacks@LittleBobbyTables,您有何建议?根据您创建prodID变量的方式,请参见此处:简单的方法是检查prodID是否不包含特殊字符和/或遵循特定格式。如果你能负担得起,事先准备好的报表是很好的。
Right("0000000" & prodID, 7)