2

我正在研究一个包含大量重复条目的 MS Access 数据库。问题是有一张学生表,有时不是只更新某个学生的信息,而是用不同的 ID 再次添加学生。我想摆脱所有重复项(这很痛苦,因为几乎没有任何方法可以区分它们),只需删除重复项就可以了,除了其他表可能依赖于重复项。如何将依赖某个 ID 的所有表更改为依赖我选择保留的 ID?

这是它的样子:

学生证 | L. 姓名 |F. 姓名

 ANDY-01 | 安迪 | 安迪

 ANDY-02 | 安迪 | 安迪

然后在课程表中,我会列出 ANDY-01 会参加的课程,以及 ANDY-02 会参加的课程。我想合并所有将 ANDY-01 和 ANDY-02 作为 ANDY-01 的表中的所有条目。我该怎么办?

(不用担心我如何区分 ANDY-01 和 ANDY-02)

4

2 回答 2

2

您只需要进行一些更新 SQL:

update another_table set student_id=:ID2 where student_id=:ID1

于 2010-05-05T12:50:21.630 回答
2

为Riho的回答+1。要更新多个表,您可以创建如下所示的过程,并手动更新 ID 值并为每个学生执行该过程。
如果您有一个映射新旧 ID 的表或查询,您可以编写另一个过程来读取该表并为每个学生调用此过程。

Public Sub UpdateStudent()
    Dim oldID As String
    Dim newID As String

    oldID = "ID1"
    newID = "ID2"

    DoCmd.Execute "update another_table set student_id='" & newID & "' where student_id=" & oldID
    DoCmd.Execute "update yet_another_table set student_id='" & newID & "' where student_id=" & oldID
End Sub
于 2010-05-05T14:50:19.693 回答