2009-06-12 78 views
1

我使用装入2000磅大袋并放在托盘上的产品进行操作。制造这种产品时,它有许多不同的元素经过测试,每个测试都有一个数字数据所在的字段。然后,这些测试记录中的每一个都会分配一个数字,例如L20444。在VBA中复制记录

现在我们有能力把这个2000磅袋子转换成80个20磅袋子。只有40个20lb袋可以放在一个托盘上,现在取一个托盘L20444并制作两个托盘,编号为L20444。这会导致库存问题,因为编号L20444只能分配一个仓库位置,而不是两个。

所以我的老板们要创建一个几乎相同但不同的数字,以便将第二个托盘放入仓库。第二个托盘现在是L20444B。它仍然具有所有相同的测试数字,并且是原始L20444的“复制品”。

我的问题是我可以取记录L20444并复制该记录的所有数据,然后将其保存为L20444B,以便它可以放在仓库中。

那么VBA有可能复制记录,重命名它,然后将它保存在同一个数据库中作为新记录?

任何帮助将不胜感激,谢谢。

回答

1

如果我正在读你,它听起来像你想要一个SQL语句来创建一个新的记录。

您使用的是Microsoft Access?我建议首先在查询编辑器中创建一个查询。这将是一个追加查询,沿着线的东西:

INSERT INTO TableA (ID,col1, col2) 
SELECT [ID] & "B" AS NewName,col1, col2 
FROM TableA 
WHERE (([ID]="L20444")); 

测试此首先要确保它在做什么,你想要什么,并作出“L20444”为参数(OLDID],或东西)。然后在执行此查询的VBA脚本中添加一些代码。当你运行它时,它应该弹出询问你的OldID。

然后,您需要了解如何从VBA执行参数化查询。 事情是这样的:

Set qdf1 = CurrentDb.QueryDefs("myQuery") 
qdf1.Parameters("OldID") = theOldID 
qdf1.Execute 

没有测试,为QueryDefs搜索VBA帮助,如果我的语法是不完全正确。

1

为什么不创建一个新表,它跟踪两个托盘(和新的编号)的位置,它将链接回(用外键)到单个股票的记录原始表格?

这应该工作,并会避免将成为冗余数据的恶梦。

+0

这很难解释,但我需要它在同一张表。所以它会像两个不同的数字产生相同的测试结果。 L20444和L20444B是两种不同的记录,但测试结果相同。我不知道我是否清楚解释,但这是我的老板想要的。我希望这有帮助。 – 2009-06-12 15:32:32