这是一个完整的新手问题,但我在网上找不到任何解决方案(至少在我的理解中没有)。我想制作一个带有文本框和按钮的表单,单击时,按钮应采用文本框中写入的值,在表中找到具有该 ID 的行并将属性更改为unavailable
. 通常我会用一个简单的 SQL 语句来做到这一点:
UPDATE table SET available='NO' WHERE id = *textbox.value*;
我应该写什么而不是 textbox.value 以便它工作?
您可以参考一个开放的表格:
UPDATE table SET available='NO' WHERE id = Forms!MyForm!MyTextbox
假设表单是主表单而不是子表单。您还可以在 VBA 中运行 SQL。确保您不会同时通过表单和查询或代码更新记录。
重新评论
在这种情况下,问题是腐败,我经常忘记提防。你会在这里找到一篇好文章:http: //www.granite.ab.ca/access/corruptmdbs.htm,包括反编译。
在以下情况下,从文本框中获取值会更容易:
如果我正确理解了这个问题,那么这里就是这种情况。
然后你可以这样做:
Dim SQL As String
'case 1: when the id is a string value
SQL = "UPDATE table SET available='NO' WHERE id = '" & Me.NameOfTheTextBox & "';"
'case 2: when the id is a numeric value
SQL = "UPDATE table SET available='NO' WHERE id = " & Me.NameOfTheTextBox & ";"
CurrentDB.Execute SQL