各位大师好,我有一段通过编辑临时表,根据临时表里每一行某一个数据值进行判断,来改变该行其他数据的代码,如下,现在就是执行代码的话,只能改变表的第一行数据,感觉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
	 
	点击刷新按钮后,只有第一行数据变化
	