在VBA中复制记录

时间:2009-06-12 15:01:30

标签: ms-access vba

我使用的产品是2000磅的麻袋,放在托盘上。制作本产品时,它会测试许多不同的元素,每个测试都有一个放置数值数据的字段。然后,这些测试记录中的每一个都分配一个数字,例如L20444。

现在我们有能力拿出2000磅的麻袋并将其转换成80个20磅的袋子。一个托盘上只能安装40个20磅的行李,现在只需一个托盘L20444,并制作两个托盘,编号为L20444。这会导致库存问题,因为编号L20444只能分配一个仓库位置,而不能分配两个仓库位置。

所以我的老板要创建一个几乎相同的数字,但又足以将第二个托盘放在仓库中。第二个托盘现在是L20444B。它仍将具有所有相同的测试数字,并且是原始L20444的“副本”。

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

VBA是否可以复制记录,重命名,然后将其保存在与新记录相同的数据库中?

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

2 个答案:

答案 0 :(得分:1)

为什么不创建一个新表,它跟踪两个托盘(和新的数字)的位置,这两个托盘(使用外键)链接回原始库存的单个记录表?

这应该有效,并且将避免本来会成为冗余数据的噩梦。

答案 1 :(得分:1)

如果我正确地读你,听起来你想要一个SQL语句来创建一个新记录。

您使用的是Microsoft Access吗?我建议首先创建一个在查询编辑器中执行此操作的查询。它将是一个Append查询,类似于:

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帮助。