根据“表1”向“表2”提取数据,生成“表3”
由上面的图可以看到有三个表格。
第一个表格是目前的产品分配,将某一产品分配给某一张定单及数量,
第二个表格是 临时要调动 的产品编号及数量
第三个表格是 通过第二个表格 向 第一个表格调出来的产品
调用的规则有:1、如果有“无”定单的,优先提取出来。
2、定单从大到小提取。
如,现在要 编号1 的产品100只,假如,编号1的产品 “无”定单的有50只,1定单有60只,2定单有40只,那么,提取的结果为:
编号:1,定单:无 ,数量:50
编号:1,定单:2,数量:40
编号:1,定单:1,数量:10
如果能看得懂我所说的内容又懂得怎么写的话,请告诉小的,俺在此谢过了。
[解决办法]
VB+ACCESS
Private Sub Command1_Click() Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db28.mdb;Persist Security Info=False" Adodc2.ConnectionString = Adodc1.ConnectionString Adodc1.CommandType = adCmdText Adodc1.RecordSource = "select * from 表2" Adodc1.Refresh Dim a() ReDim a(Adodc1.Recordset.RecordCount - 1, Adodc1.Recordset.Fields.Count - 1) With Adodc2 For i = 0 To Adodc1.Recordset.RecordCount - 1 .RecordSource = "select * from 表1 where 编号=" & Adodc1.Recordset.Fields(0) & " order by iif(IsNumeric(定单),val(定单),2000000000) desc" .Refresh x = .Recordset.Fields(2) If x < Adodc1.Recordset.Fields(1) Then Do While (x < Adodc1.Recordset.Fields(1)) And (Not .EOFAction) .Recordset.ActiveConnection.Execute "INSERT INTO 表3 values ('" & .Recordset.Fields(0) & "'" & "," & .Recordset.Fields(1) & "," & .Recordset.Fields(2) & ")" .Recordset.MoveNext x = x + .Recordset.Fields(2) Loop x = x - .Recordset.Fields(2) x = Adodc1.Recordset.Fields(1) - x .Recordset.ActiveConnection.Execute "INSERT INTO 表3 values ('" & .Recordset.Fields(0) & "'" & "," & .Recordset.Fields(1) & "," & x & ")" Else .Recordset.ActiveConnection.Execute "INSERT INTO 表3 values ('" & .Recordset.Fields(0) & "'" & "," & .Recordset.Fields(1) & "," & .Recordset.Fields(1) & ")" End If Adodc1.Recordset.MoveNext Next End With End Sub