繁体   English   中英

访问无法识别 SQL boolean 值

[英]Access not recognizing SQL boolean values

我有以下 SQL 语句用于在 Microsoft Access 中添加记录。 当我运行该语句时,除了 boolean 字段外,每个字段都被正确添加,该字段应始终为 false。 但是,它总是添加具有默认 boolean 值 (true) 的记录。

Dim strSQL As String
strSQL = "INSERT INTO Part VALUES ('" & Me.IdPartPrimary.Value & "', '" & Me.NamePartPrimary.Value & "', '" & Me.BrandPartPrimary.Value & "', '" & Me.ModelPartPrimary.Value & "', '" & Me.FunctionPartPrimary.Value & "', 0, '" & Me.FatherPartPrimary.Value & "', '" & Me.ProviderPartPrimary.Value & "', '" & Me.AmountPartPrimary.Value & "');"
DoCmd.RunSQL strSQL

我尝试过的事情:

  • 将 0 放在 ' ' 之间
  • 用单词 false、False 和 No 替换 0

我不能将 false 设置为默认值,因为我需要的是它与默认值不同

桌子

形式

将表单绑定到表并运行 SQL 以在同一个表中创建记录将产生两条新记录。 做一个或另一个。

不要在 INSERT 操作中包含自动编号字段。 必须明确列出要更新的字段。

如果您希望新记录在 Yes/No 字段中始终具有 0 值,则在表设计中将其设置为 DefaultValue,否则在 SQL 连接中使用常量来指定。

strSQL = "INSERT INTO Part(Part_Name, ..., Primary_Part, ...) VALUES(" &... & ", 0," &... & ")"

AFAIK,Access 无法执行多动作 SQL 语句,但 SQL 注入仍然是可能的。 如果您想探索 VBA 中参数的使用,请查看如何在 Microsoft Access 的不同上下文中使用 VBA 中的参数?

另一种避免 SQL 注入的方法是打开一个记录集,使用它的 AddNew 方法创建一个新记录,并设置每个字段的值。 DAO.Recordset AddNew

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM