簡體   English   中英

MS Access根據子窗體條目填充表

[英]MS Access populate table based on subform entry

我有我們組織的班級注冊數據庫。 它跟蹤的主要內容是:用戶信息(名稱等),跟蹤信息(即您的主要專業:生物學)和課程信息(什么課程是什么課程)。

因此,數據結構如下所示。

tblUsers
UserID (PK)
FirstName
LastName
.
tblUserTrack
UserTrackID (PK)
UserID (FK) - links to tblUsers
TrackID (FK - links to tblTrack).
.
tblTrack
TrackID (PK)
TrackName
.
tblCourses
CourseID (PK)
CourseName
TrackID (FK links to tblTrack)
.
tblRegistrationNew
RegistrationID (PK)
UserTrackID (FK links to tblUserTrack)
Grade
CompletionDTTM

注冊表單包含3個元素:父表單具有用戶人口統計信息跟蹤子表單具有用戶/跟蹤信息,並通過UserID鏈接到父表單。 您可以毫無問題地向用戶添加曲目(在我們的組織中,他們可以具有多個曲目,例如生物學和化學)。

第三種形式的目標是根據用戶輸入的內容填充注冊信息。 但是,每當我將注冊表添加到查詢中時,它都不會更新(從SQL的角度來看這很有意義)。

當我更新跟蹤表時,是否可以將行更新/插入到注冊表中? 如果可以,怎么辦? 我有MS SQL Server和C#.NET的經驗,所以我並非一無所知(只是大部分情況下)。

我也發現此鏈接指向做得好的注冊數據庫,但它沒有我需要的功能。 http://office.microsoft.com/zh-CN/templates/classroom-management-database-TC001018407.aspx?CategoryID=CT101426031033&av=ZAC000&AxInstalled=1&c=0

編輯:合理地接近。 我意識到我可以對注冊表進行左連接,但是無法更新表單中的記錄。 查詢在這里:

選擇tblUserTrack.UserTrackID,tblUserTrack.UserID,tblUserTrack.TrackID,tblCourses。 tblRegistrationNew.UserTrackID;

因此,實際上並沒有一個很好的解決方案。 我嘗試了對數據庫設計的各種修改,但是我上面編寫的內容已經被精心設計。 為了我的需要,我有一個帶有兩個子表單的表單。 主要表格包含學生的人口統計信息,例如姓名,地址。 第一個子表單是下拉列表中的軌道(基本上是學位,即生物學程度),其中填充了tblUserTrack表。 然后,我將代碼放在AfterInsert事件中,以便在用戶插入新行時在tblRegistration表中生成新行。

Private Sub Form_AfterInsert()

    Dim strSQL As String

    strSQL = "INSERT INTO tblRegistration (UserTrackID, CourseID) " & _
        "SELECT tblUserTrack.UserTrackID, tblCourses.CourseID FROM tblUserTrack INNER JOIN " & _
        "tblCourses ON tblCourses.TrackID = tblUserTrack.TrackID " & _
        "WHERE tblUserTrack.UserID = " & UserID.Value & "AND tblUserTrack.UserTrackID NOT IN " & _
        "(SELECT tblRegistration.UserTrackID FROM tblRegistration INNER JOIN tblUserTrack ON tblUserTrack.UserTrackID = tblRegistration.UserTrackID " & _
        "WHERE tblUserTrack.UserID = " & UserID.Value & ")"

    DoCmd.RunSQL (strSQL)


End Sub

此后,它令人滿意地工作。 我唯一沒有做的就是處理曲目更改時的情況(即從生物學到化學),在這種情況下,我指示用戶僅刪除舊曲目(生物學)並插入新曲目(化學)。 經過許多小時的研究,總的來說,它的長短是至少我所知,確實沒有一種方法可以完成我需要做的“級聯插入”。 至少現在我知道代碼在SQL執行方面的作用。

暫無
暫無

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

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