根据数量字段重复记录

Cha*_*ger 2 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
Run Code Online (Sandbox Code Playgroud)

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

Gor*_*son 9

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

   n
----
   1
   2
   3
...
2499
2500
Run Code Online (Sandbox Code Playgroud)

然后,对于表格[tblCustomer]中的样本数据

ProductID  Name   Expire date  SumofQty
---------  -----  -----------  --------
        3  Flour  2013-12-13          6
        6  Meat   2014-01-20         10
Run Code Online (Sandbox Code Playgroud)

查询

SELECT tblCustomer.*
FROM
    tblCustomer
    INNER JOIN
    Numbers
        ON Numbers.n <= tblCustomer.SumofQty
Run Code Online (Sandbox Code Playgroud)

回报

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
Run Code Online (Sandbox Code Playgroud)