爱歌学姐费心了![em23]
删除再加入的方法的确很快.
但这不是我要的结果,实际工作中有上百个字段,由不同的部门和系统分工修改
不可能把所有字段都列出,有些甚至是不许查看的.我试用update + 一维数组 方法,可行,
要改的字段也不用和数据库中的同顺序,但只认一维数组,也就是一次修改一个人,多人就要用到循环了.
如果找到 update + 二维数组 的方法就好了,可以一次修改多条记录.循环都省了
Sub shj()'此处以一条记录为例 t = Timer Dim mz$ Dim cn As New ADODB.Connection Dim rc As New ADODB.Recordset cn.Open "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Sheets("b").[c13] & _ ";Jet OLEDB:Database Password=" & Sheets("b").[c11] mz = [a4] rc.Open "select * from " & Sheets("b").[c12] & " where 姓名='" & mz & "'", _ cn, adOpenKeyset, adLockOptimistic arb = Range("d3:e3")'qee用说过vba宽容地把只有一行的数认做是一维数组,在这就不行 arr = Range("d4:e4") '数组转置 arb = Application.Transpose(arb) arr = Application.Transpose(arr) '再转置=没转置,但不这么来一下,UPDATE就不认 arb = Application.Transpose(arb) arr = Application.Transpose(arr) 'arb = Array("爱好", "结交时间") '激活这两句,则不用转置 'arr = Array("qqrrq", 4) '说明update 认的是一维数组 rc.Update arb, arr rc.Close cn.Close Set cn = Nothing Set rc = Nothing MsgBox "已存入数据库,用时 " & Timer - t & "秒" End Sub
爱歌学姐[em17]功力比我深,希望能找到方法.
|