【发布时间】:2021-07-08 14:34:14
【问题描述】:
我正在创建一个数据库,用户可以在其中更改表中公司的名称。但是,每当我使用更新查询时,它都会要求提供一个已经提供的参数。旧公司名称在变量new_comp 中,然后新公司名称在Me.comp1_box.Value 中。
有趣的是,只要我点击确定并且在“输入参数”设置中不输入任何内容,查询就会运行得很好
Dim record_changer As String
record_changer = "UPDATE " & "[" & new_comp & "]" & " SET " & "[" & new_comp & "]" & ".Company_Name =" & """" & Me.comp1_box.Value & """" & ";"
MsgBox (record_changer)
DoCmd.RunSQL (record_changer)
这是 record_changer 的最终值。 更新 [EREDEON TECHNOLOGIES] SET [EREDEON TECHNOLOGIES].Company_Name="EREDEON TECH";
代码运行时是这样的。
- This is the query that it is supposed to run
- It gives this prompt meaning it's supposed to run perfectly, meaning there is nothing wrong with the Query
- This what pops up
谁能帮帮我? 我真的迷路了。旧公司名称是EREDEON TECHNOLOGIES,新名称是EREDEON TECH 但有趣的是,当我没有在参数对话框中输入值就直接点击 Okay 时,它实际上进行了更改。-_- 很奇怪
【问题讨论】:
-
将
DoCmd.RunSQL更改为CurrentDb().Execute以禁止显示警告消息。但请记住上面提到的 sql 注入问题。 -
在屏幕截图中,EREDEON TECHNOLOGIES 似乎是一个表名。对吗?
-
@KostasK。嗯。我试过了,它仍然给出了相同的结果。老实说,我不知道为什么会这样。
-
@marlan yhh Marlan。有先生。
标签: vba forms ms-access error-handling ms-access-2010