当前位置:编程学习 > VB >>

急求,UPDATE 语句的语法错误 解决办法!!

参考vb项目开发全程实录 做了一个图书馆管理系统(毕业设计);
测试运行,在读者信息管理-修改信息页面中修改相关的读者信息后,单击“保存”按钮出现错误提示:实时错误,’-2147217900 (80040e14)‘:UPDATE 语句的语法错误!
以下是“读者信息管理-修改信息”模块的原代码:Private Sub Command5_Click()
    If Text11.Text = "" Or Text12.Text = "" Then
        MsgBox "不能修改空记录信息", vbInformation
    Else
        Dim i, sql As String
        i = MsgBox("是否修改此条记录!", vbYesNo + vbOKOnly)
        If i = vbYes Then
            sql = "update dzxxtb set 读者编号='" & Text11 & "',读者姓名='" & Text12 & "',性别='" & Combo4 & "',出生日期='" & DTPicker3 & "',单位='" & Text13 & "',家庭住址='" & Text14 & "',家庭电话='" & Text15 & "',手机号码='" & Text16 & "',传真号码='" & Text17 & "',Email='" & Text18 & "',证件类型='" & Combo5 & "',证件号码='" & Text19 & "',登记日期='" & DTPicker4 & "',读者级别='" & Text20 & "',备注='" & Text21 & "' where 读者编号 like '" & Text11.Text & "'"
            cnn.Execute (sql)
            Adodc1.Refresh
            clear
        Else
            On Error Resume Next
            rs.CancelUpdate
        End If
    End If
End Sub 

下面是我编写的代码:
 Private Sub Command5_Click()
   If Text11.Text = "" Or Text12.Text = "" Then
        MsgBox "不能修改空记录信息", vbInformation
    Else
        Dim i, sql As String
        i = MsgBox("是否修改此条记录!", vbYesNo + vbOKOnly)
        If i = vbYes Then
            sql = "update dzxxtb set 读者编号='" & Text11 & "',读者姓名='" & Text12 & "',性别='" & Combo4 & "',出生日期='" & DTPicker3 & "',单位='" & Text13 & "',住址='" & Text14 & "',固定电话='" & Text15 & "',手机号码='" & Text16 & "',MSN/QQ='" & Text17 & "',Email='" & Text18 & "',证件类型='" & Combo5 & "',证件号码='" & Text19 & "',登记日期='" & DTPicker4 & "',读者级别='" & Text20 & "',备注='" & Text21 & "' where 读者编号 like '" & Text11.Text & "'"
            cnn.Execute (sql)
            Adodc1.Refresh
            clear
        Else
            On Error Resume Next
            rs.CancelUpdate
        End If
    End If
End Sub
(所做的)该模块其他按钮都能实现相关的功能,唯独有这个功能不能实现!!
(由于该模块的代码太多,不能全给出来,请见谅!!)







--------------------编程问答-------------------- 报错时你看看sql的内容是什么
Text11等最好写成Text11.text --------------------编程问答-------------------- sql = "update dzxxtb set  ..."  
    debug.print strsql  '检查一下输出的语句,如果是SQL库在查询分析器里运行一下 
  cnn.Execute (sql)  --------------------编程问答--------------------

      sql = "update dzxxtb set 读者编号='" & Text11 & "',读者姓名='" & Text12 & "',性别='" & Combo4 & "',出生日期=#" & DTPicker3 & "#,单位='" & Text13 & "',住址='" & Text14 & "',固定电话='" & Text15 & "',手机号码='" & Text16 & "',MSN/QQ='" & Text17 & "',Email='" & Text18 & "',证件类型='" & Combo5 & "',证件号码='" & Text19 & "',登记日期=#" & DTPicker4 & "#,读者级别='" & Text20 & "',备注='" & Text21 & "' where 读者编号 like '" & Text11.Text & "'"
      cnn.Execute (sql)

注意数据类型。如果在你的表中是字符型则需要象你这样在数据的两边加上单引号,日期是加#,而数字则不是加。 --------------------编程问答--------------------
'数据库为SQL:
sql=" update 表名 set 字符型字段='"& 字符型变量 &"',数值型字段="& 数值型变量 &",日期型字段='"& 日期型变量 &"' where  读者编号 like '%" & Text11.Text & "%'" 
'数据库为ACCESS:
sql=" update 表名 set 字符型字段='"& 字符型变量 &"',数值型字段="& 数值型变量 &",日期型字段=#"& 日期型变量 &"# where  读者编号 like '%" & Text11.Text & "%'" 
--------------------编程问答-------------------- like后面的字符串里必须有通配符才行
比如%
如果你的text11的值没有,那就会出错 --------------------编程问答--------------------
引用 5 楼 ling242a 的回复:
like后面的字符串里必须有通配符才行 
比如% 
如果你的text11的值没有,那就会出错



update的时候写通配符?您没事吧? --------------------编程问答-------------------- 谢谢 各位楼主 问题我已经在各位提供的方法中找到解决办法!!O(∩_∩)O谢谢各位
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,