用ADO大量修改SQL SEVER表数据时采用进度显示
发布:2004-6-3
作者:竹笛
简介:
当需要在access中大量修改SQL SEVER2000的表数据时,为免于给操作员死机印象,显示修改进度.下面要采取修改记录的原因是因为操作员在录入原始数据时,有的记录销售额没有加上税率17%,所以不得不人为修改.在我修改这些记录时,销售明细表已有30万条记录.如果不加上进度条,运行程序时会给人一种死机的感觉。
代码:
建一个窗体,一个标签,一个按钮.示例如下:
Private Sub Command1_Click()
Dim rst As adodb.Recordset
Dim i As Long
Dim j As Long
Dim ActSum As Double'计算出来的销售额,是指单价*销售量
Dim strSQL As String
Set rst = New adodb.Recordset
strSQL = "select * from 表名称"
rst.Open strSQL, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
i = 1
j = 1
rst.MoveFirst
Do Until rst.EOF
'字段Price是单价,字段Weight_sal是销售量,字段sumMoney是销售额
ActSum = rst("Price") * rst("Weight_sal")
If Abs(ActSum - rst("sumMoney") * 1.17) < 10 Then
rst("sumMoney") = Round(ActSum, 2)
rst.Update
j = j + 1
End If
rst.MoveNext
DoEvents
Application.Forms("窗体名")![标签名].Caption = "运行记录: " & i & "/总记录: 300000 /修改记录: " & j
i = i + 1
Loop
rst.Close
Set rst = Nothing
End Sub
(责任编辑:admin)