![](/img/trans.png)
[英]MS-Access Update SQL Not Null But is Blank (! Date & Number Fields !)
[英]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.