SQL = "update zgly2 set 年='" & Me.Text12 & "',姓名='" & Me.Text1
SQL = SQL & "',性别='" & Me.Combo1 & "',年龄='" & Me.Text2 
SQL = SQL & "',参加工作期限='" & Me.Text3 & "',本单位工作年限='" & Me.Text4
SQL = SQL & "',应享受医疗时间='" & Me.Text5 & "',延长医疗期间='" & Me.Text6
SQL = SQL & "',首次病休日期='" & Me.Text7 & "',医疗周期截止日期='" & Me.Text8
SQL = SQL & "',医疗周期累计月数='" & Me.Text9 & "',医疗期满去向='" & Me.Combo2
SQL = SQL & "',备注='" & Me.Text11
SQL = SQL & "',病休时间1='" & Me.Text10(0) & "',累计病休天数1='" & Me.Text13(0)
SQL = SQL & "',病情摘要1='" & Me.Text14(0) & "',记录员1='" & Me.Text15(0)
SQL = SQL & "',病休时间2='" & Me.Text10(1) & "',累计病休天数2='" & Me.Text13(1)
SQL = SQL & "',病情摘要2='" & Me.Text14(1) & "',记录员2='" & Me.Text15(1)
SQL = SQL & "',病休时间3='" & Me.Text10(2) & "',累计病休天数3='" & Me.Text13(2)
SQL = SQL & "',病情摘要3='" & Me.Text14(2) & "',记录员3='" & Me.Text15(2)
SQL = SQL & "',病休时间4='" & Me.Text10(3) & "',累计病休天数4='" & Me.Text13(3)
SQL = SQL & "',病情摘要4='" & Me.Text14(3) & "',记录员4='" & Me.Text15(3)
SQL = SQL & "',病休时间5='" & Me.Text10(4) & "',累计病休天数5='" & Me.Text13(4)
SQL = SQL & "',病情摘要5='" & Me.Text14(4) & "',记录员5='" & Me.Text15(4)
SQL = SQL & "',病休时间6='" & Me.Text10(5) & "',累计病休天数6='" & Me.Text13(5)
SQL = SQL & "',病情摘要6='" & Me.Text14(5) & "',记录员6='" & Me.Text15(5)
SQL = SQL & "',病休时间7='" & Me.Text10(6) & "',累计病休天数7='" & Me.Text13(6)
SQL = SQL & "',病情摘要7='" & Me.Text14(6) & "',记录员7='" & Me.Text15(6)
SQL = SQL & "',病休时间8='" & Me.Text10(7) & "',累计病休天数8='" & Me.Text13(7)
SQL = SQL & "',病情摘要8='" & Me.Text14(7) & "',记录员8='" & Me.Text15(7)
SQL = SQL & "',病休时间9='" & Me.Text10(8) & "',累计病休天数9='" & Me.Text13(8)
SQL = SQL & "',病情摘要9='" & Me.Text14(8) & "',记录员9='" & Me.Text15(8)
SQL = SQL & "',病休时间10='" & Me.Text10(9) & "',累计病休天数10='" & Me.Text13(9)
SQL = SQL & "',病情摘要10='" & Me.Text14(9) & "',记录员10='" & Me.Text15(9)
SQL = SQL & "',病休时间11='" & Me.Text10(10) & "',累计病休天数11='" & Me.Text13(10)
SQL = SQL & "',病情摘要11='" & Me.Text14(10) & "',记录员11='" & Me.Text15(10)
SQL = SQL & "',病休时间12='" & Me.Text10(11) & "',累计病休天数12='" & Me.Text13(11)
SQL = SQL & "',病情摘要12='" & Me.Text14(11) & "',记录员12='" & Me.Text15(11)
SQL = SQL & "',病休时间合计='" & Me.Text24 & "',累计病休天数合计='" & Me.Text25
SQL = SQL & "',病情摘要合计='" & Me.Text16
SQL = SQL & "',记录员合计='" & Me.Text17 & "' where ID=" & iNum
Call TransactSQL(SQL)
MsgBox "已经更改信息!", vbOKOnly + vbExclamation, "提示"
Public Sub TransactSQL(ByVal SQL As String)
Dim mycon As ADODB.Connection
Dim strConnection As String
Dim strArray() As String
Set mycon = New ADODB.Connection                  
On Error GoTo TransactSQL_Error
    strConnection = "Provider=Microsoft.jet.oledb.4.0;Data Source=" & App.Path & "\"
    strConnection = strConnection & "xs.mdb"
    strArray = Split(SQL)
    mycon.Open strConnection                     
    mycon.Execute SQL                             
    iflag = 1
TransactSQL_Exit:
    Set mycon = Nothing
    Exit Sub
TransactSQL_Error:
    MsgBox "错误:" & Err.Description
    iflag = 2
    Resume TransactSQL_Exit
End Sub
提示出错是这样的:错误:语法错误(操作符丢失)在查询表达式'ID='中

解决方案 »

  1.   

    太长了怎么看啊?自己跟踪一下生成的SQL语句,看看哪里出错!
      

  2.   

    iNum在那里被赋的值?还有把生成的sql语句给贴上来.
    会不会出现"where ID="这样的情况.
      

  3.   

    数据库字段在设计时不允许使用ID作为表名,可以设计,但提交sql时会出错.
      

  4.   

    类型不对呀.
    比如:
    字符型的: 性别='" & Me.Combo1 & "'
    数值型的: 年龄="& val(Me.Text2.text) &"
    日期型的: 医疗周期截止日期=#" & Me.Text8 &"#
      

  5.   

    你的inum变量是什么类型的呀,如果是整型的话应该是错的,要把它转变成文本类型
      

  6.   

    你的iNum可能没有被赋值,所以SQL语句成了 "... Where Id=" ,这样就出现了你说的错误。
      

  7.   

    以后写SQL语句时尽量不要把第一行的单引号写在第二行,比如:SQL = SQL & "',性别='" & Me.Combo1 & "',年龄='" & Me.Text2 
    SQL = SQL & "',参加工作期限='" & Me.Text3 & "',本单位工作年限='" & Me.Text4应写成SQL = SQL & ",性别='" & Me.Combo1 & "',年龄='" & Me.Text2 & "' "
    SQL = SQL & ",参加工作期限='" & Me.Text3 & "',本单位工作年限='" & Me.Text4 & "'"这样维护起来会很方便