根据数量字段重复记录

时间:2013-12-11 18:11:10

标签: ms-access access-vba ms-access-2010

我有一张Excel表格,我从我的客户那里收到,然后导入Access,我会调用该表[tblCustomer],看起来像这样:

ProductID     Name         Expire date      SumofQty
------------  -----------  ---------------  --------
3             Flour        13-Dec-2013      6       
6             Meat         20-Jan-2014      10

因此该表可能包含100个项目。我希望在同一个表或另一个表中按照SumofQty复制相同的记录6次,然后将下一个记录复制10次,依此类推。 我需要这个原因我现在正在手动为每个产品创建标签。

1 个答案:

答案 0 :(得分:9)

您可以使用“Numbers表”轻松地在查询中执行此操作。在数据库中创建一个名为[Numbers]的表,该表由名为[n]的单个字段组成,其字段类型为Numeric (Long Integer)。在该表中创建值为1,2,3,...的行,其数量远远超过您在[tblCustomer]中看到的最大值。[SumofQty]。在我的测试中,我使用了2500,所以我的[Numbers]表看起来像

   n
----
   1
   2
   3
...
2499
2500

然后,对于表[tblCustomer]

中的样本数据
ProductID  Name   Expire date  SumofQty
---------  -----  -----------  --------
        3  Flour  2013-12-13          6
        6  Meat   2014-01-20         10

查询

SELECT tblCustomer.*
FROM
    tblCustomer
    INNER JOIN
    Numbers
        ON Numbers.n <= tblCustomer.SumofQty

返回

ProductID  Name   Expire date  SumofQty
---------  -----  -----------  --------
        3  Flour  2013-12-13          6
        3  Flour  2013-12-13          6
        3  Flour  2013-12-13          6
        3  Flour  2013-12-13          6
        3  Flour  2013-12-13          6
        3  Flour  2013-12-13          6
        6  Meat   2014-01-20         10
        6  Meat   2014-01-20         10
        6  Meat   2014-01-20         10
        6  Meat   2014-01-20         10
        6  Meat   2014-01-20         10
        6  Meat   2014-01-20         10
        6  Meat   2014-01-20         10
        6  Meat   2014-01-20         10
        6  Meat   2014-01-20         10
        6  Meat   2014-01-20         10