簡體   English   中英

訪問,使用組合框填充子表單

[英]Access, populate subform with combobox

由於我是使用Access / VBA的初學者,我無法判斷我的查詢是否已經在另一個論壇中得到解決,所以如果有的話我會道歉。

我試圖使用主窗體上的組合框中的值填充子窗體。 我希望當我在組合框中選擇一個學生,然后在另一個組合框中選擇一個跟隨模塊並單擊“添加模塊”時,它會將模塊添加到子表單中,並在底部子表單中顯示為該學生選擇的所有模塊。 我按照視頻獲取了我目前擁有的代碼,下面顯示了我當前布局的截圖(借口設計功能尚未開始考慮)。

請注意:對於docmd,代碼肯定是不正確的,我不確定要填充子窗體的內容,以便顯示所選學生和所選的所有模塊。

當您打開表單時,它看起來像這樣,理想情況下我希望它為特定學生添加記錄時的外觀

單擊“添加模塊”后,它看起來如何進入新記錄並且不顯示完整列表,除非我單擊箭頭。

代碼 -

'combo box for StudentID updates all other student detail text boxes.
Private Sub studentIDcombo_AfterUpdate()
    programmetb = DLookup("ProgrammeID", "tblStudent", "[StudentID]=studentidcombo")
    firstnametb = DLookup("FirstName", "tblStudent", "[StudentID]=studentidcombo")
    surnametb = DLookup("Surname", "tblStudent", "[StudentID]=studentidcombo")
    StudentID1 = studentIDcombo
End Sub

'combo box for ModuleCode updates all other module detail text boxes.
Private Sub modulecodecombo_AfterUpdate()
    modulenametb = DLookup("ModuleName", "tblModule", "[ModuleCode]=modulecodecombo")
    creditstb = DLookup("Credits", "tblModule", "[ModuleCode]=modulecodecombo")
    semester1tb = DLookup("Semester_1", "tblModule", "[ModuleCode]=modulecodecombo")
    semester2tb = DLookup("Semester_2", "tblModule", "[ModuleCode]=modulecodecombo")
    prereqtb = DLookup("Pre_requisites", "tblModule", "[ModuleCode]=modulecodecombo")
End Sub

Private Sub AddModuleBut_Click()
    'Verification that studentID is selected.
    If IsNull(studentIDcombo) Then
        MsgBox "Please select student", , "Required"
        studentIDcombo.SetFocus
        Exit Sub
    End If
    'Verification that modulecode is selected.
    If IsNull(modulecodecombo) Then
        MsgBox "Please select a course", , "Required"
        modulecodecombo.SetFocus
        Exit Sub
    'Else create a record in the subform using the combo box data.
    Else
        DoCmd.GoToRecord , , acNewRec
        StudentID1 = studentIDcombo
        modulecodecombo.SetFocus
    End If
End Sub

額外的信息:

在我能夠為特定學生添加模塊之后,我將開始編碼條件,例如,如果您之前已經完成模塊B等,則只能選擇模塊A.等。這可以通過當前布局實現嗎?

我將制作一個學生表格來添加學生,然后他們將在此表格上添加模塊。

在此先感謝任何幫助,我希望這是有道理的!

最誠摯的問候,<3

首先,考慮重新設計表以使用正確的主鍵(自動增量整數)。 說過你缺少的是創建新學生模塊記錄的命令。 它看起來像這樣:

DoCmd.RunSQL "INSERT INTO [studentmodulelinktable] (ProgrammeID,ModuleName) VALUES (" & studentIDcombo & ",'" & modulecodecombo & "')"

以上假設studentIDcombo具有數值,而modulecodecombo具有文本值。 區別在於您是否使用單引號。

暫無
暫無

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

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