在 MS Access 中使用 SQL 更新空字段
Update Null Fields with SQL in MS Access
我正在尝试 运行 Access SQL 中的某些命令 VBA 以使用从表单中的组合框获得的值更新列中的空白(空)字段.
我正在收货
Run time Error '3061' Too Few Parameters. Expected 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
我认为您需要在查询中使用单引号将用户作为 '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
EDIT:
As @jarlh has mentioned I agree, I don't think that the square parentheses are required
考虑参数查询,而不是将带引号的字符串值连接到 UPDATE
语句文本中。使用参数方法时不需要这些引号,这也可以保护您免受 (当用户字符串本身包含撇号时)的影响。
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
我正在尝试 运行 Access SQL 中的某些命令 VBA 以使用从表单中的组合框获得的值更新列中的空白(空)字段.
我正在收货
Run time Error '3061' Too Few Parameters. Expected 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
我认为您需要在查询中使用单引号将用户作为 '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
EDIT: As @jarlh has mentioned I agree, I don't think that the square parentheses are required
考虑参数查询,而不是将带引号的字符串值连接到 UPDATE
语句文本中。使用参数方法时不需要这些引号,这也可以保护您免受
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