Adodc1.RecordSource = "Delete From 档案著入 where ID=" & CLng(Val(MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1)))
Adodc1.Recordset.Requery~用以上的怎么删除不了数据库的呀 只是MSHFlexGrid里的删除了加Adodc1.Recordset.Delete只删除最后一条 并不删除我选定的谢谢

解决方案 »

  1.   


    Adodc1.Recordset.ActiveConnection.Execute "Delete From 档案著入 where ID=" & CLng(Val(MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1)))
    解决了
      

  2.   

    将ID改为名称后问题又出现了~~~显示:标准表达式中数据类型不匹配
    Adodc1.Recordset.ActiveConnection.Execute "Delete From data where 名称=" & CLng(Val(MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1)))谢谢
      

  3.   

    Adodc1.Recordset.ActiveConnection.Execute "Delete From data where 名称=" & CLng(Val(MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1)))------------------------------请注意你上句中,Delete语句中的条件字段  名称  是字符类型还是数值类型?
      

  4.   

    如果名称字段是字符类型应该改为:
    Adodc1.Recordset.ActiveConnection.Execute "Delete From data where 名称='" & cStr(MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1)) & "'"如果是数值型则上面的语句没错,应该是你的值不是数字引起不匹配。
      

  5.   

    如果是数值型,可以强制要求数据类型:
    Adodc1.Recordset.ActiveConnection.Execute "Delete From data where 名称=" & cstr(Val(MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1)))可以将Query语句放入到变量中,写成以下这种形式,这样的代码更易读和维护。
    strSQL="Delete From data where 名称=" & cstr(Val(MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 1)))
    Adodc1.Recordset.ActiveConnection.Execute strSQL