各位大师好,我有一段通过编辑临时表,根据临时表里每一行某一个数据值进行判断,来改变该行其他数据的代码,如下,现在就是执行代码的话,只能改变表的第一行数据,感觉rsttmp.movenext这个命令只执行了一步,麻烦看下是什么原因吧,是不是里面的if判断语句和它产生了冲突 Private Sub btn_刷新_Click()
Dim strSQL As String
Dim cnn As Object 'ADODB.Connection
Dim rst As Object 'ADODB.Recordset
Dim rstTmp As Object 'DAO.Recordset
Dim x As String
Dim y As String
'Set cnn = CurrentProject.Connection
'strSQL = "SELECT * FROM [工程量报价表] WHERE [报价单号]=" & SQLText(Me![报价单号])
'Set rst = OpenADORecordset(strSQL, , cnn)
Set rstTmp = CurrentDb.OpenRecordset("TMP_工程量报价表")
Do Until rstTmp.EOF ' 写成Do While Not rstTmp.EOF 也不行
rstTmp.Edit
If rstTmp![子目代号] = "3.001" Then
x = Val(rstTmp![a(面积)])
y = Val(rstTmp![e])
rstTmp![a(面积)] = x * Me![层面积变化率]
rstTmp![e] = y * Me![层面积变化率]
rstTmp![砼量(m3)] = rstTmp![a(面积)] * rstTmp![b(折厚)]
ElseIf rstTmp![子目代号] = "3.002" Then
x = Val(rstTmp![a(面积)])
y = Val(rstTmp![e])
rstTmp![a(面积)] = x * Me![层面积变化率]
rstTmp![e] = y * Me![层面积变化率]
rstTmp![砼量(m3)] = rstTmp![a(面积)] * rstTmp![b(折厚)]
End If
rstTmp.update
rstTmp.MoveNext
Loop
rstTmp.Close
Me.sfrDetail.Requery
ExitHere:
Set rst = Nothing
Set cnn = Nothing
Set rstTmp = Nothing
Exit Sub
End Sub
点击刷新按钮后,只有第一行数据变化