簡體   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