vba错误运行UPDATE命令

时间:2017-02-10 00:45:56

标签: ms-access access-vba

获取运行此代码的错误数据类型转换错误。 数据来自设置为数据类型富文本的文本框。

CurrentDb.Execute "UPDATE tblISPServices", "SET Location=& Me.cboLocation,ServiceType =  & Me.cboSType, BBProvider = & Me.txtBBProvider" & "WHERE ID= & Me.txtID.Tag"

请帮助

1 个答案:

答案 0 :(得分:1)

请记住从VBA代码获取变量或控制值,其余应该是双引号内的字符串。

生成此类SQL语句以执行时记住3条规则

1)字符串数据类型字段应该有字符串值的单引号所以我在&之前放了单引号在例如位置之后'“& Me.cboLocation&”' 2)数字数据类型不需要单引号,因此删除ID字段的单引号,例如ID =“& Me.txtID.Tag 3)日期数据类型将具有#而不是单引号,例如#“& Now()&”#

我的假设是,在表tblISPServices字段中,Location是Text Data类型,ServiceType是Text数据类型,DBProvider是Text数据类型,ID是Numeric。

观察我如何进行更改以从VBA获取变量(控制属性)以生成String变量。

CurrentDb.Execute "UPDATE tblISPServices SET Location= '" &   Me.cboLocation & "', ServiceType =  '" & Me.cboSType & "', BBProvider = '" & Me.txtBBProvider  & "' WHERE ID= " & Me.txtID.Tag

注意:请记住在生成此类字符串时请确保您不要将任何关键字加入字符串或数字,例如以下是错误的SQL,因为它没有将

分开
BBProvider = '" & Me.txtBBProvider  & "'WHERE ID= " & Me.txtID.Tag

正确的SQL将是,

BBProvider = '" & Me.txtBBProvider  & "' WHERE ID= " & Me.txtID.Tag