2

大量の重複エントリがあるMSAccessデータベースに取り組んでいます。問題は、学生のテーブルがあり、特定の学生の情報を更新する代わりに、誰かが別の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

リホの答えは+1。複数のテーブルを更新するには、次のような手順を作成し、ID値を手動で更新して、各生徒の手順を実行します。
古い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 に答える