我一直在寻找一种在VBA中复制或复制记录集的方法.我的意思是,让不正确的数据彼此独立.
我试过了
Set copyRS = origRS.Clone
Set copyRS = origRS
Run Code Online (Sandbox Code Playgroud)
当我使用任何方法时,我无法修改一个记录集而不修改另一个记录集.所以在这个例子中:
码:
Dim origRS As Recordset, copyRS As Recordset
Set origRS = New Recordset
'Create field
origRS.Fields.Append "Name", adChar, 10, adFldUpdatable
origRS.Open
'Add name
origRS.AddNew "Name", "John"
'Clone/copy
Set copyRS = origRS.Clone
'Change record in cloned/copied recordset
copyRS.MoveFirst
copyRS!Name = "James"
'This should give me "JamesJohn"
MsgBox copyRS.Fields(0).Value & origRS.Fields(0)
Run Code Online (Sandbox Code Playgroud)
但不幸的是,对我来说,这会修改两个记录集
我的问题是:
有没有办法从另一个记录集复制记录集,然后彼此独立地修改数据(没有循环)?
我知道你可以通过一个循环来做到这一点,但是没有别的办法吗?
我不确定我能找到什么是可能的,但它的思考肯定很有意思.我的目标是优化仓库的布局,但此问题适用于其他方案.
我有一个位置列表,到门的距离和它们所在的区域(例如区域A =冷藏,区域B =环境):
Location Zone Distance A1 A 1 A2 A 3 A3 A 5 A4 A 7 B1 B 2 B2 B 4 B3 B 6 B4 B 8
我还有一个产品清单,它们被挑选的次数和区域(区域A =需要冷藏的产品,区域B =需要冷藏的产品,区域A/B =没有限制的产品)
Product Zone Pick per day Milk A 8 Lettuce A/B 7 Bread B 6 Chocolate B 5 Tomatoes A/B 4 Dry Pasta B 3 Beef A 2 Chicken A 1
如果我只对优化选择产品的距离感兴趣,我会把最挑选的最接近门.我通过他们的ROW_NUMBER和ORDER BY Distance和Pick加入两个表来完成这个.
但是,我真的非常关心产品区域,因为我不能将面包存放在冷藏区域(它可能会变得潮湿).此外,我知道生菜可以存放在冷藏或非冷藏区域.
此外,应该有条件确保所有产品都分配一个空间(8个空格8个产品)
手动完成我会得到.
Location Zone Distance Product Zone Pick per day A1 …