If adodc1.Recordset.Fields("area") > 100 Then
           adodc1.Recordset.Fields("buzhu") = 
                600 + 2 * adodc1.Recordset.Fields("area") - 2 * 100
     End If
我本来是打算把数据库中面积大于100的所有area的补助费公式是600+2(面积-100)
但是我用上面的程序只是执行了表中的第一条记录,请问有什么办法把表中所有的补助费都改写掉?谢谢!

解决方案 »

  1.   

    adodc1.Recordset.Filter="area>100"do until adodc1.Recordset.EOF
        adodc1.Recordset.Fields("buzhu") = 
                    600 + 2 * adodc1.Recordset.Fields("area") - 2 * 100    adodc1.Recordset.MoveNext
    loop
         adodc1.recordset.filter="area>0"
      

  2.   

    strsql=" update set buzhu=600+2*area-2*100 where area>100"
    conn.execute strsql
      

  3.   

    adodc1.Recordset.Filter="area>100"do while not adodc1.Recordset.EOF
        adodc1.Recordset.Fields("buzhu") = 
                    600 + 2 * adodc1.Recordset.Fields("area") - 2 * 100    adodc1.Recordset.MoveNext
    loop
         adodc1.recordset.filter="area>0"
    也可
      

  4.   

    conn.execute "update set buzhu=600+2*area-2*100 where area>100"
      

  5.   

    strsql=" update set buzhu=600+2*area-2*100 where area>100"
      

  6.   

    cnADO.Execute "Update Table Set BuZhu = 600+2*Area-200 where Area > 100"
      

  7.   

    哦,哈哈
    楼上各位给的都是代码,我给来点文字解释。
    Recordset就象一个指针,运行你的那几行程序的时候它指在哪里就会修改那行的记录,所以,你要是想判断所有的记录,就得用循环语句,一个一个记录的判断,就象上面的while 和 do until,adodc1.Recordsetmovefirst
    while not adodc1.Recordset.eof
      你的那些判断语句
      adodc1.Recordset.movenext
    wend
      

  8.   

    同意 Leftie(左手) 的说法
    UP