首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

根据“表1”向“表2”提取数据,生成“表3”解决方法

2012-02-15 
根据“表1”向“表2”提取数据,生成“表3”由上面的图可以看到有三个表格。第一个表格是目前的产品分配,将某一产

根据“表1”向“表2”提取数据,生成“表3”


由上面的图可以看到有三个表格。

第一个表格是目前的产品分配,将某一产品分配给某一张定单及数量,

第二个表格是 临时要调动 的产品编号及数量

第三个表格是 通过第二个表格 向 第一个表格调出来的产品

调用的规则有:1、如果有“无”定单的,优先提取出来。
  2、定单从大到小提取。

如,现在要 编号1 的产品100只,假如,编号1的产品 “无”定单的有50只,1定单有60只,2定单有40只,那么,提取的结果为:

  编号:1,定单:无 ,数量:50
  编号:1,定单:2,数量:40
  编号:1,定单:1,数量:10

如果能看得懂我所说的内容又懂得怎么写的话,请告诉小的,俺在此谢过了。


[解决办法]
VB+ACCESS

VB code
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 

热点排行