sql = "SELECT * FROM T_KBHI WHERE KtNouber='" & Text1.Text & "' and Gnso='" & Text2.Text & "'"
    rs.Open sql, pConn, adOpenForwardOnly, adLockReadOnly
    
    If (Not rs.EOF) Then
        sql = "update T_KBHI set START=" & Text3.Text & ",END=" & Text4.Text & ",fla=" & flaNo & ",UpdateDate=#" & Format(Date, "yyyy-mm-dd ") & "# WHERE KtNouber='" & Text1.Text & "' and Gnso='" & Text2.Text & "'"
        pConn.Execute (sql)
        MsgBox "更新成功!", 64, "提示信息"
    Else
        sql = "SELECT * FROM T_KBHI"
        rst.Open sql, pConn, adOpenDynamic, adLockOptimistic
        rst.AddNew
        rst.Fields.Item("KtNouber") = Text1.Text
        rst.Fields.Item("Gnso") = Text2.Text
        rst.Fields.Item("START") = Text3.Text
        rst.Fields.Item("END") = Text4.Text
        rst.Fields.Item("fla") = flaNo
        rst.Fields.Item("CreateDate") = Format(Date, "yyyy-mm-dd")
        rst.Update
        MsgBox "添加成功!", 64, "提示信息"
        rst.Close
        Set rst = Nothing
    End If一开始上面update没问题,
下面一个INSERT报语法出错,于是我换了种方法写就没事了,可上面却不行了。。同样是语法出错
请指点!!

解决方案 »

  1.   

    adOpenForwardOnly, adLockReadOnly 
    改成 adOpenDynamic,adLockOptimistic试试
      

  2.   

    sql = "update T_KBHI set START=" & Text3.Text & ",END=" & Text4.Text & ",fla=" & flaNo & ",UpdateDate=#" & Format(Date, "yyyy-mm-dd ") & "# WHERE KtNouber='" & Text1.Text & "' and Gnso='" & Text2.Text & "'"你为什么有的加了单引号,有的没有加,问题会不会出在这里,怎么还有个#出现?        sql = "update T_KBHI set START='" & Text3.Text & "',END='" & Text4.Text & "',fla='" & flaNo & "',UpdateDate='" & Format(Date, "yyyy-mm-dd ") & "' WHERE KtNouber='" & Text1.Text & "' and Gnso='" & Text2.Text & "'"试试看
      

  3.   

    应该不会的没加引号是因为是整型的 加#号是日期型的 调试时sql语句在access里可以更新在程序里就不行了
      

  4.   

    sql = "update T_KBHI set START=" & Text3.Text & ",END=" & Text4.Text & ",fla=" & flaNo & ",UpdateDate=#" & Format(Date, "yyyy-mm-dd ") & "# WHERE KtNouber='" & Text1.Text & "' and Gnso='" & Text2.Text & "'"是这句错吗?
    你把两个#改成' ,也许就可以了,另外在程序中嵌入sql语句时,最好用msgbox或者text将sql语句显示出来,很多时候就是差一个符号而已
      

  5.   

    在acess中查询语句,对于日期型数据,用##没问题,但是更新和insert就不知道了