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

时间:2016-04-06 14:20:09

标签: sql vba ms-access ms-access-2003

我正在尝试在Access VBA中运行一些SQL命令,以使用从表单中的组合框获得的值更新列中的空白(null)字段。

目前我正在接收

  

运行时错误'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

2 个答案:

答案 0 :(得分:3)

考虑参数查询,而不是将带引号的字符串值连接到List<String> func(List<String> old, Map<String, String> oldToNew) { List<String> holger = old.stream() .map(oldToNew::get) .filter(Objects::nonNull) .collect(Collectors.toList); if (holger.size() < old.size()) { // ... appropriate error handling code ... } else { return holger; } } 语句文本中。在使用参数方法时,您不需要这些引号,这也可以保护您免受issue Alex warned about的攻击(当用户字符串本身包含撇号时)。

UPDATE

答案 1 :(得分:0)

我认为您需要在查询中使用单引号将用户设为'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提到的我同意,我不认为方括号是必需的