[英]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.