sql - 如何消除 MS Access 2003 中具有唯一 ID 的重复条目?

标签 sql database ms-access ms-access-2003

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

它看起来像这样:

 Student ID | L. Name |F. Name

 ANDY-01    | Andy    |  Andy

 ANDY-02    | Andy    |  Andy

然后在类(class)表中,我会列出 ANDY-01 会修读的类(class),以及 ANDY-02 会修读的类(class)。我想将所有表中包含 ANDY-01 和 ANDY-02 的所有条目合并为 ANDY-01。我该怎么办?

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

最佳答案

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

关于sql - 如何消除 MS Access 2003 中具有唯一 ID 的重复条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2773193/

相关文章:

php - 传递数字变量并防止 SQL 注入(inject)

database - AngularJS:我需要了解数据库结构才能实现吗?

database - 将图像存储在数据库中

mysql - 按顺序插入或打开表单到特定记录,同时仍然可以查看其他记录

sql - Access 告诉我我的字段之一不是聚合函数的一部分,但这似乎不是真的

sql - SQL Server 中的 DATALENGTH 对于多字节字符返回 1 BYTE

php - MySQL函数: in clause HAVING query runs twice

sql - 在 SQL 中对 DATEDIFF 函数的结果进行分组

Mysql如何找到当前数据库,赋值到一个字符串变量中

ms-access - Access 报告 : Page header on second page on per detail