微软Access 3061太少参数
我有一个非常简单的更新声明,但它不断给我3061错误。微软Access 3061太少参数
Public Function SendToYard(ByVal lEquipmentId As Long)
oMb.ExecuteSql ("UPDATE Equipment SET GeneralLocation = 'Yard' WHERE ID = " & lEquipmentId)
End Function
表名是设备,列名GeneralLocation和ID
什么能可能是错误怎么回事?
这里是的ExecuteSQL功能 注意我使用DAO
Public Function ExecuteSql(qry As String)
db.Execute qry, dbFailOnError
End Function
其实这是一个有争议的问题。 问题是,在SQL设计模式下,SQL语句默认使用当前数据库,因此SQL语句正确执行。 在模型基类中的VBA代码中,DAO.Database对象是通过获取数据库的存储路径来设置的。它指向错误的文件。 问题解决了。底线,确保你知道什么数据库正在使用。
它发生在我们最好的... – BIBD 2011-03-02 17:56:20
试试这个:
Public Function SendToYard(ByVal lEquipmentId As Long)
oMb.ExecuteSql ("UPDATE Equipment SET GeneralLocation = 'Yard' WHERE ID = '" & EquipmentId & "'")
端功能
尝试复制和粘贴代码的SQL部分进入查询设计器的SQL视图。它应该显示一个请求缺少参数的输入框。我愿意打赌在某个地方有一个错字,这应该可以帮助你找到它。
它实际运行得很好,说“您即将更新1行”。我改变了“&lEquipmentId为1导致”更新设备设置Equipment.GeneralLocation ='围场'WHERE Equipment.ID = 1“没有qoutes。 – cmaduro 2011-03-02 16:16:32
在没有错误处理程序的情况下使用dbFailOnError在我看来确实是非常不明智的。 – 2011-03-04 04:40:32