【问题标题】:Updating a date record in a table using VBA & cmd button使用 VBA 和 cmd 按钮更新表中的日期记录
【发布时间】:2015-01-10 16:05:50
【问题描述】:

我正在尝试使用命令按钮来更新表格上的日期。该按钮采用单独的形式。现在我正在尝试:

Private Sub Command13_Click()

 Update Master
     Set [Last Complete] = Date()
End Sub

“Master”是我要更新的表,“Last Complete”是具体记录。

Access 使用我的代码抛出错误消息,抱怨 “子或函数未正确定义”。

我在 Excel 中使用 VBA 进行了大量工作,但在 Access 中使用的不多。

【问题讨论】:

  • 有什么问题?
  • 我收到“子或函数未正确定义”的错误。
  • 当前表单绑定的记录是否相同?如果是,那么只需 go me.Last_Complete = date()。您没有看到 set 命令或任何 sql。

标签: ms-access button command vba


【解决方案1】:

问题在于 SQL 语句不是有效的 VBA 代码。

您可以将语句放在一个字符串中,然后使用DAO.Database.Execute 方法来执行它:

Private Sub Command13_Click()
    CurrentDb.Execute "Update Master Set [Last Complete] = Date()"
End Sub

假设UPDATE 语句是有效的并且可以做你想做的事,这可能就是你所需要的。但是,这里有另一个版本,它展示了您可能会觉得有用的功能:

Private Sub Command13_Click()
    Dim db As DAO.Database
    Dim strUpdate As String
    strUpdate = "Update Master Set [Last Complete] = Date()"
    Debug.Print strUpdate
    Set db = CurrentDb
    db.Execute strUpdate, dbFailOnError
    Debug.Print db.RecordsAffected & " rows updated"
    Set db = Nothing
End Sub

【讨论】:

  • 谢谢!这让我比以前走得更远。现在唯一的问题是它会更新 [Last Complete] 中的每条记录,而不是选择的记录。那是“设置”参数吗?
  • 不行,您需要添加一个WHERE 子句来限制UPDATE 的范围。 WHERE 条件应标识目标行。我建议您在 Access 查询设计器中创建一个 SELECT 查询。在那里解决您的WHERE 条件。选择正确的行后,将 WHERE 子句添加到您的 UPDATE
  • 感谢您的帮助。我试试看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多