Office中国论坛/Access中国论坛

标题: 请帮忙看一下结构,谢谢了。 [打印本页]

作者: liuweisunjing    时间: 2011-2-22 15:23
标题: 请帮忙看一下结构,谢谢了。
Do Until N = True
If Y = False Then
  DoCmd.SetWarnings (False)
  DoCmd.RunSQL "DELETE 漆包线车间假设明细.* FROM 漆包线车间假设明细;"
  DoCmd.RunSQL "INSERT INTO 漆包线车间假设明细 SELECT 漆包线车间明细.* FROM 漆包线车间明细;"
  DoCmd.RunSQL "DELETE 漆包线仓库假设明细.* FROM 漆包线仓库假设明细;"
  DoCmd.RunSQL "INSERT INTO 漆包线仓库假设明细 SELECT 漆包线明细仓库.* FROM 漆包线明细仓库;"
  Y = True
Else
  stemp = "Select * From 漆包线消耗明细"
  rs.Open "Select * From 漆包线消耗明细", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  Do While Not rs.EOF
  a = rs.Fields("根数")
  c = DCount("条形码", "漆包线车间假设明细", "货品ID='" & rs("铜线货品ID") & "'")
    If a - c > 0 Then
       For i = 1 To a - c Step 1     
          If DCount("条形码", "漆包线仓库假设明细", "货品ID='" & rs("铜线货品ID") & "'") > 0 Then
              b = DLookup("条形码", "漆包线应追加明细", "货品ID='" & rs("铜线货品ID") & "'")      
              DoCmd.RunSQL "INSERT INTO 漆包线车间假设明细 ( 货品ID, 条形码, 数量 ) SELECT 漆包线应追加明细.货品ID, 漆包线应追加明细.条形码, 漆包线应追加明细.数量 FROM 漆包线应追加明细 GROUP BY 漆包线应追加明细.货品ID, 漆包线应追加明细.条形码, 漆包线应追加明细.数量 HAVING (((漆包线应追加明细.货品ID)='" & rs("铜线货品ID") & "'));"      
              DoCmd.RunSQL "DELETE 漆包线仓库假设明细.* FROM 漆包线仓库假设明细 where 条形码='" & b & "';"
              Y = True      
         Else   
              MsgBox "此有绕阻定子计划车间及仓库" & rs("铜线货品ID") & "漆包线桶数不足,请修改此计划", vbDefaultButton1     
              Set rs = Nothing      
              Set rs1 = Nothing      
              Exit Sub      
          End If         
       Next i   
  Else   
      STemp1 = "select * from 漆包线车间假设明细 where 货品ID='" & rs("铜线货品ID") & "'"   
      rs1.Open STemp1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic     
      Do While Not rs1.EOF   
          If rs("每根数量") > rs1("数量") Then   
              If DCount("条形码", "漆包线仓库明细", "货品ID=" & rs("货品ID") & "") > 0 Then
                  b = DLookup("条形码", "漆包线应追加明细", "货品ID='" & rs("铜线货品ID") & "'")         
                  DoCmd.RunSQL "INSERT INTO 漆包线车间假设明细 ( 货品ID, 条形码, 数量 ) SELECT 漆包线应追加明细.货品ID, 漆包线应追加明细.条形码, Min(漆包线应追加明细.数量) AS 数量 FROM 漆包线应追加明细 GROUP BY 漆包线应追加明细.货品ID, 漆包线应追加明细.条形码 HAVING (((漆包线应追加明细.货品ID)='" & rs("货品ID") & "'));"
           DoCmd.RunSQL "DELETE 漆包线仓库假设明细.* FROM 漆包线仓库假设明细 where 条形码=" & b & ";"         
                  Y = True         
              Else        
                  MsgBox "此有绕阻定子计划车间及仓库'" & rs("货品ID") & "'漆包线重量不足,请修改此计划", vbDefaultButton1      
                  Set rs = Nothing      
                  Set rs1 = Nothing      
                  Exit Sub      
              End If
          Else   
              rs1.MoveNext      
          End If   
      Loop   
End If
    Set rs1 = Nothing   
  rs.MoveNext  
Loop
Set rs = Nothing
DoCmd.SetWarnings (True)
End If
N = True
Loop

总是执行到  For i = 1 To a - c Step 1   。。。Next i 就结束了,不再判断重量,请帮忙看看为什么。谢谢了。
作者: liuweisunjing    时间: 2011-2-22 16:36
有点明白了,但是没解决。简化一点
If a - c > 0 Then
For i = 1 To a - c Step 1     
          If DCount("条形码", "漆包线仓库假设明细", "货品ID='" & rs("铜线货品ID") & "'") > 0 Then
              b = DLookup("条形码", "漆包线应追加明细", "货品ID='" & rs("铜线货品ID") & "'")      
                 Y = True      
         Else   
              MsgBox "此有绕阻定子计划车间及仓库" & rs("铜线货品ID") & "漆包线桶数不足,请修改此计划", vbDefaultButton1     
              Set rs = Nothing      
              Set rs1 = Nothing      
              Exit Sub      
          End If         
       Next i   
到这以后,如何再让程序回到上面的判断




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3