簡體   English   中英

在MS Access中使用SQL更新空字段

[英]Update Null Fields with SQL in MS Access

我正在嘗試在Access VBA中運行一些SQL命令,以使用從表單中的組合框獲得的值更新列中的空白(空)字段。

目前,我正在接收

運行時錯誤'3061'參數太少。 預期1

但它似乎格式正確。

我正在使用的代碼如下。 用戶將作為字符串傳遞,例如-“ Joe Bloggs”。

Public Sub testSub(user as string)
Dim db as DAO.Database
Dim sqlstr as String
set db as CurrentDB

sqlstr = "UPDATE tTable1 SET Field1 = [" & user & "] WHERE Field1 IS NULL;"

db.Execute sqlstr

End Sub

考慮使用參數查詢,而不是將帶引號的字符串值連接到UPDATE語句文本中。 使用參數方法時,您不需要那些引號,這也可以保護您免受Alex警告問題 (當用戶字符串本身包含撇號時)。

Public Sub testSub(ByVal pUser As String)
    Dim db As DAO.Database
    Dim qdf As DAO.QueryDef
    Dim sqlstr As String

    sqlstr = "UPDATE tTable1 SET Field1 = [which_user] WHERE Field1 IS NULL;"
    Set db = CurrentDb
    Set qdf = db.CreateQueryDef(vbNullString, sqlstr)
    qdf.Parameters("which_user").Value = pUser
    qdf.Execute sqlstr, dbFailOnError
End Sub

我認為您需要使用單引號將用戶作為查詢的'string' 另外,我一直使用set db = currentdb而不是as

Public Sub testSub(user as string)
Dim db as DAO.Database
Dim sqlstr as String
set db = CurrentDB

sqlstr = "UPDATE tTable1 SET Field1 = '" & user & "' WHERE Field1 IS NULL;"

db.Execute sqlstr

End Sub

編輯:正如@jarlh所提到的,我同意,我認為方括號不是必需的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM