以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何有条件地填充部分字段的内容。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=9058)

--  作者:老有所乐
--  发布时间:2011/1/24 23:04:00
--  如何有条件地填充部分字段的内容。

表B窗口2 将表B勾选的记录填入到表A,要求

如果新填入的记录与表A已有记录(产品与规格)相同时,只将其"数量"和"金额"加到原有记录的"数量"和"金额"中,

如果新填入的记录在表A没有"产品"与"规格"相同时,只将其"产品","规格","数量"和"金额"加到表A中.

表A增加记录后使其"产品"与"规格"没有重复记录

求表B窗口2的"表A汇总后删除重复记录"  按钮代码,谢谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目12.table


--  作者:狐狸爸爸
--  发布时间:2011/1/25 9:22:00
--  

我给你一个思路,在表A找出相同产品和规格的行,如果找到,保存在变量dr, 如果没有找到,新增一行,保存在变量dr,填入产品和规格,最后统一写入数量和金额:

 

代码:

 

Dim r1 As DataRow
Dim r2 As DataRow
For Each r1 In DataTables("表B").DataRows
    If r1.IsNull("产品") OrElse r1.IsNull("规格") Then
        Continue For
    End If
    r2 = DataTables("表A").Find("产品 = \'" & r1("产品") & "\' And 规格 = \'" & r1("规格") & "\'")
    If r2 Is Nothing Then
        r2 = DataTables("表A").AddNew()
        r2("产品") = r1("产品")
        r2("规格") = r1("规格")
    End If
    r2("数量") = r1("数量")
    r2("金额") = r1("金额")
Next


--  作者:狐狸爸爸
--  发布时间:2011/1/25 9:26:00
--  

帖子标题我帮你改了一下。

标题尽可能地简单描述一下问题。


--  作者:老有所乐
--  发布时间:2011/1/25 16:36:00
--  
谢谢贺老师指导,我试了一下,还达不到预期效果,我来消化一下再说.谢谢!