这是一个完整的新手问题,但我在网上找不到任何解决方案(至少没有任何理解)。我想用一个文本框和一个按钮来创建一个表单,点击按钮时应该将该值写入文本框,在表中找到具有该ID的行并将属性更改为unavailable
。通常我会用一个简单的SQL语句做到这一点:微软Access:如何获得按钮点击文本框的价值?
UPDATE table SET available='NO' WHERE id = *textbox.value*;
我应该写的,而不是textbox.value使其作品是什么?
这是一个完整的新手问题,但我在网上找不到任何解决方案(至少没有任何理解)。我想用一个文本框和一个按钮来创建一个表单,点击按钮时应该将该值写入文本框,在表中找到具有该ID的行并将属性更改为unavailable
。通常我会用一个简单的SQL语句做到这一点:微软Access:如何获得按钮点击文本框的价值?
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
每当我运行查询它会打开一个对话框,要求形式的价值Gestiune idInchiriere!。由于没有错别字,可能是什么问题? 我有编程经验,但没有在Visual Basic中,我看过一些代码,但我很难过...... – FloIancu
如果您使用的是MS Access 2010,则可以在查询设计窗口中使用intellisense来获取名称Access具有表单和控件,否则,可以使用表达式向导。如果您完全确信名称没有问题,您是否可以从引用Forms!Gestiune!idInchiriere的开放表单运行消息框进行测试? – Fionnuala
此外,为了重申Remou所说的话,请仔细检查您的表单是否在运行查询时打开。听起来它可能没有打开,或者你错误地拼写了控件。 – Scotch