求助:将varchar值'True'转换为数据类型为bit的列时发生语法错误

时间:2022-10-24 14:53:15
Dim Conn As New ADODB.Connection
ConnectionString = "Provider=sqloledb;Data Source=ZHANGHA;Initial Catalog=mrpdata;Integrated Security=SSPI;
Conn.Open ConnectionString
增加语句:
        Conn.Execute "INSERT INTO tabsysUser ( Fnumber, UserName, UsePassword, " & _
                                             "基础资料, 计划, 机加, " & _
                                             "采购, 外协, 仓库, " & _
                                             "Stop ) " & _
                                      "values ('" & Forms.用户管理.Text245 & _
                                            "','" & Forms.用户管理.Text213 & _
                                            "','" & Forms.用户管理.Text215 & _
                                            "','" & Abs(Forms.用户管理.基础资料) & _
                                            "','" & Abs(Forms.用户管理.计划) & _
                                            "','" & Abs(Forms.用户管理.机加) & _
                                            "','" & Abs(Forms.用户管理.采购) & _
                                            "','" & Abs(Forms.用户管理.外协) & _
                                            "','" & Abs(Forms.用户管理.仓库) & _
                                            "','" & Abs(Forms.用户管理.Stop) & "')"

修改语句:
        Conn.Execute "UPDATE tabSysUser SET UsePassword='" & Forms.用户管理.Text215 & _
                                        "',基础资料='" & Abs(Forms.用户管理.基础资料) & _
                                        "',计划='" & Abs(Forms.用户管理.计划) & _
                                        "',机加='" & Abs(Forms.用户管理.机加) & _
                                        "',采购='" & Abs(Forms.用户管理.采购) & _
                                        "',外协='" & Abs(Forms.用户管理.外协) & _
                                        "',仓库='" & Abs(Forms.用户管理.仓库) & _
                                        "',Stop='" & Abs(Forms.用户管理.Stop) & _
                                        "' WHERE Fnumber=" & Forms.用户管理.Text245

    运行增加语句正确,而运行修改语句时,带Abs()函数的报出“数据类型不匹配”,而把Abs()函数去掉报出“将varchar 值'True'转换为数据类型为bit的列时发生语法错误”
    求助,各位高人帮我改改,错在哪儿,在此先谢谢各位了

3 个解决方案

#1


       Conn.Execute "INSERT INTO tabsysUser ( Fnumber, UserName, UsePassword, " & _
                                            "基础资料, 计划, 机加, " & _
                                            "采购, 外协, 仓库, " & _
                                            "Stop ) " & _
                                     "values ('" & Forms.用户管理.Text245 & _
                                           "','" & Forms.用户管理.Text213 & _
                                           "','" & Forms.用户管理.Text215 & _
                                           "','" & Abs(Forms.用户管理.基础资料) & _
                                           "','" & Abs(Forms.用户管理.计划) & _
                                           "','" & Abs(Forms.用户管理.机加) & _
                                           "','" & Abs(Forms.用户管理.采购) & _
                                           "','" & Abs(Forms.用户管理.外协) & _
                                           "','" & Abs(Forms.用户管理.仓库) & _
                                           "'," & Abs(Forms.用户管理.Stop) & ")"

楼主懒到连哪个字段是TRUE都不愿意说。 改成上面的试吧。猜着改的。

问题说明越详细,回答也会越准确!参见如何提问。( 提问的智慧

#2


哪个字段是BIT?去掉引号试试

#3


TO二楼的ACMAIN_CHM朋友,
增加语句运行正确没问题,是修改语句就出问题;

基础资料、计划、机加、采购、外协、仓库、Stop字段是BIT

#1


       Conn.Execute "INSERT INTO tabsysUser ( Fnumber, UserName, UsePassword, " & _
                                            "基础资料, 计划, 机加, " & _
                                            "采购, 外协, 仓库, " & _
                                            "Stop ) " & _
                                     "values ('" & Forms.用户管理.Text245 & _
                                           "','" & Forms.用户管理.Text213 & _
                                           "','" & Forms.用户管理.Text215 & _
                                           "','" & Abs(Forms.用户管理.基础资料) & _
                                           "','" & Abs(Forms.用户管理.计划) & _
                                           "','" & Abs(Forms.用户管理.机加) & _
                                           "','" & Abs(Forms.用户管理.采购) & _
                                           "','" & Abs(Forms.用户管理.外协) & _
                                           "','" & Abs(Forms.用户管理.仓库) & _
                                           "'," & Abs(Forms.用户管理.Stop) & ")"

楼主懒到连哪个字段是TRUE都不愿意说。 改成上面的试吧。猜着改的。

问题说明越详细,回答也会越准确!参见如何提问。( 提问的智慧

#2


哪个字段是BIT?去掉引号试试

#3


TO二楼的ACMAIN_CHM朋友,
增加语句运行正确没问题,是修改语句就出问题;

基础资料、计划、机加、采购、外协、仓库、Stop字段是BIT