对于编程Access,我是一个新手,所以我请求一些帮助。我有一个包含6个字段的表:
PolicyNum, Name, Address, InsuredValue, Status, DuplicateNumber
在状态字段下,如果记录的值表示“重复”,那么我需要复制该记录,附加到另一个表( tblPolicies ),然后重复这一步,但这次追加相同的记录,但是有一个' -01'作为添加到 PolicyNum 的后缀。我可能需要复制该记录几次,并根据 DuplicateNumber 字段下的数字后缀' -02',' -03'等。所以,作为一个例子,我有:
PolicyNum, Name, Address, InsuredValue, Status, DuplicateNumber
FL65875, John Doe, 545 Anywhere Street, $10000, Duplicate, 2
所以,我会将上面显示的确切记录追加到 tblPolicies ,但需要复制它,因为它在 Status 下表示为,我需要将它复制两次...所以我需要在 PolicyNum 下面添加两个以下更改的记录:
PolicyNum, Name, Address, InsuredValue, Status, DuplicateNumber
FL65875-01, John Doe, 545 Anywhere Street, $10000, Duplicate, 2
FL65875-02, John Doe, 545 Anywhere Street, $10000, Duplicate, 2
从上面可以看出, PolicyNum 后缀为-01和-02,这是唯一的变化。在追加之后,我将摆脱 tblPolicies 的目标表中的Status和 DuplicateNumber 字段。
提前感谢您的帮助!
答案 0 :(得分:2)
考虑使用记录集更新,在迭代源表的情况下,在For
循环内,将新记录添加到目标表映射字段,并在 PolicyNum 上添加后缀连接。甚至忽略最后两列,因为它们不需要。
Dim src_rst As Recordset, dest_rst as Recordset
Set src_rst = CurrentDb.OpenRecordset("SELECT * FROM mytable WHERE [Status] = 'Duplicate' AND DuplicateNumber > 0")
Set dest_rst = CurrentDb.OpenRecordset("tblPolicies")
src_rst.MoveFirst
Do While src_rst Not .EOF
For i = 1 To src_rst![DuplicateNumber]
dest_rst.AddNew
dest_rst![PolicyNum] = src_rst![PolicyNum] & "-0" & i
dest_rst![Name] = src_rst![Name]
dest_rst![Address] = src_rst![Address]
dest_rst![InsuredValue] = src_rst![InsuredValue]
dest_rst.Update
Next i
src_rst.MoveNext
Loop
dest_rst.Close(): src_rst.Close()
Set dest_rst = Nothing: src_rst = Nothing