[Access] 更新資料


阿瑟 發表



這篇教學會告訴您如何更改現存資料表紀錄中的數值, 其實和新增的用法差不多喔!

STEP1:【用Connection去更新資料】
其實這個跟上一篇教學中提到的"新增"的用法大同小異:
Set cons = Server.CreateObject("ADODB.Connection")
DBmPath = Server.MapPath("資料庫名稱.mdb")
cons.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBmPath
sql="Update 資料表 Set 欄位=數值 Where 欄位 = 數值"
cons.execute(sql)
cons.close


使用上面的語法之前您必須先打開一啟資料庫連線(connection), 不過不需要打開資料集合:
  • Set 欄位=數值,代表更新該欄位, 指定新的數值, 您也可以用
  • Where ....,這段是條件式

  • 就如同其他的Cons.Execute一樣, 這個動作會更新所有符合條件的資料

    STEP2:【打開資料表以後更新】
    如果您要進行的更新動作比較複雜的話可以使用這種方法:
    Set cons = Server.CreateObject("ADODB.Connection")
    DBmPath = Server.MapPath("資料庫名稱.mdb")
    cons.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBmPath
    set rsm = Server.CreateObject("ADODB.Recordset")
    sql="Select *From 資料表名稱 where 條件式"
    rsm.Open sql, cons,1, 3
    rsm("欄位1")=數值
    rsm("欄位2")=數值
    rsm("欄位3")=數值
    rsm("欄位4")=數值
    rsm.update
    rsm.close
    cons.close


    如果您的欄位更新是那種需要複雜運算才能取得數值的, 這種方式會比較好用, 因為在SQL語法中使用ASP比較容易出錯.
    請注意: 這種方式會選出一套資料集合, 而當您進行動作時, 動作的對象是該資料集合的第一筆資料, 要切換到下一筆資料, 您可以使用rsm.movenext來往下跳一筆. 語法講解:
  • rsm("欄位1")=數值,和新增一樣, 只是這一次是更改已經存在的資料欄位中的數值
  • rsm.update,更改完以後請記得要更新資料表來儲存更新的數值
  • 最後更新日期: 9/6/2002 3:18:16 PM