我有一个带有NUMBER列的表格,称为“价格”。我也有一个带有文本框的表单,用户可以在其中输入一个百分比(例如0.9)和一个按钮,当按下该按钮时,价格中的所有记录将与该文本框中的该数字相乘。我没有这个工作。
这前两个示例仅用于测试基本情况,根本没有任何变量。
Dim strSQL As String
Dim dbs As DAO.Database
Set dbs = CurrentDb
strSQL = "UPDATE table_name SET Price = 20;"
dbs.Execute strSQL
我已经尝试了上述方法,但是将Price乘以20,如下所示:(有效)
strSQL = "UPDATE table_name SET Price = Price * 20;"
我知道我可以通过写以下行来使变量工作:
Dim textVariable AS Double
Textbox.SetFocus
textVariable = Textbox
MsgBox (textVariable)
但是它在SQL语句中不起作用:
Dim textVariable As Double
Dim strSQL As String
Dim dbs As DAO.Database
Set dbs = CurrentDb
Textbox.SetFocus
textVariable = Textbox
strSQL = "UPDATE table_name SET Price = Price * textVariable;"
dbs.Execute strSQL
错误消息:“运行时错误'3061'-参数太少,预期为1”。 在调试模式下,“ dbs.Execute strSQL”突出显示为黄色。
答案 0 :(得分:1)
为了将变量放入SQL字符串,您需要从变量中构造变量,因为当前您正在将Price列乘以“ textVariable”而不是其中存储的值。
strSQL = "UPDATE table_name SET Price = Price * " & textVariable & ";"
此外,最好检查一下以确保输入到TextBox中的值是有效数字(无论是在代码中还是在文本框本身上设置限制),因为当前您的代码将引发类型不匹配如果“文本框”中的值不是有效的double值,则为例外。