簡體   English   中英

從Access表中刪除“舊”數據

[英]Removing “old” data from an Access table

我在Access文件中有兩個表(tblCurrentStudents和tblNewStudents)。 tblCurrentStudents是上一學年末的最新信息,其中包含去年的學生及其信息的列表。 tblNewStudents包含今年學生信息的完整列表。 這兩個表共有一些學生,這意味着他們去年在這里,今年在這里。 但是,tblCurrentStudents中有一些學生不是去年在這里,而是在今年年初入學。

我現在需要做的是從不再登記的tblCurrentStudents中刪除學生,這意味着他們是在去年年底離開的,不會再加入tblNewStudents。

我知道我可以使用Union命令將兩個表連接在一起(我找到了執行此操作所需的代碼)。 我不知道如何做相反的事情,這意味着找到兩個表都不通用的記錄,並從tblCurrentStudents中刪除這些記錄。

有什么建議么? 是否有諸如Not Union命令之類的東西?

假設我正確理解你的問題,你想刪除任何學生tblCurrentStudents誰在不tblNewStudents

如果是這樣,我認為您正在尋找使用IN()

DELETE FROM tblCurrentStudents
WHERE StudentId NOT IN (
    SELECT StudentID FROM tblNewStudents)

我創建了一組練習表來模擬我想要的內容。 這是我在Internet上找到並使用的UNION代碼:

私人子Command0_Click()

Dim sql作為字符串,sTable作為字符串,oTD作為TableDef sql =“ SELECT * FROM MergeTable UNION SELECT * FROM MainTable”

如果MsgBox(“是否在表中存儲唯一記錄?”,vbYesNo)= vbYes,則sTable = InputBox(“哪個表名?”,“ tblMerged”)

For Each oTD In CurrentDb.TableDefs
    If oTD.Name = sTable Then sTable = sTable & "1"
Next oTD

sql = "SELECT * INTO " & sTable & " FROM (" & sql & ")"
DoCmd.RunSQL sql

萬一

結束子

假設我正確理解了您的問題,您想從tblCurrentStudents中刪除不在tblNewStudents中的任何學生嗎?

是的,這正是我所需要的。 我將嘗試IN命令。 我會讓你知道怎么回事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM