[英]Access Compile Error: Argument not Optional
我有一個訪問數據庫,這類似於我之前問過的一個問題,有一個下拉菜單和一個子表單。 我希望能夠從下拉列表中選擇一個選項,並讓它在下面的子窗體中打開相應的子窗體。 這是我的代碼...
Option Compare Database
Option Explicit
Private Sub btnCloseHRForms_Click()
DoCmd.Close
End Sub
Private Sub cmbSelectFrms_AfterUpdate()
Select Case selectSubform
Case 1
Forms!frm_HRForms!subformHRForms.Form!subform1.Visible = True
Case 2
Forms!frm_HRForms!subformHRForms.Form!subform2.Visible = True
Case 3
Forms!frm_HRForms!subformHRForms.Form!subform3.Visible = True
End Select
End Sub
Private Sub Form_Load()
Dim dba As Database
Dim rst As Recordset
Dim SQL As String
Set dba = CurrentDb
Set rst = dba.OpenRecordset("tbl_Forms", dbOpenDynaset, dbSeeChanges)
SQL = "SELECT ListName FROM tbl_Forms"
Set rst = dba.OpenRecordset(SQL, dbOpenDynaset, dbSeeChanges)
Set rst = Nothing
Set dba = Nothing
End Sub
Function selectSubform(ID)
Dim dbacurrent As Database
Dim rstcurrent As Recordset
Dim SQL As String
Set dbacurrent = CurrentDb
SQL = "SELECT * FROM tbl_Forms WHERE ID = " & ID
Set rstcurrent = dbacurrent.OpenRecordset(SQL, dbOpenDynaset, dbSeeChanges)
selectSubform = rstcurrent.Fields("ID")
Set dbacurrent = Nothing
Set rstcurrent = Nothing
End Function
有什么建議么? 剛接觸 VBA
您的函數 selectSubform(ID) 需要傳遞一個 ID 參數,而您沒有傳遞一個。 定義函數時:
Function selectSubform(ID)
' ... Do some stuff
selectSubform = SomeValue
End Function
您告訴編譯器需要一個名為 ID 的參數。
順便說一句,我強烈建議您在每個代碼模塊的頂部放置一個 Option Explicit 語句,並在編輯器中打開 Option Explicit 選項。 這將要求您指明數據類型。 目前,我們不知道期望什么數據類型作為 ID 參數,也不知道您的函數返回什么數據類型(盡管在您的 Select Case 語句中作為一個明顯的整數使用暗示了這一點)。 做出一些假設,我會嘗試以下更改(我現在無法測試,也無法與您的其余代碼交談)。
我在這里假設組合框中的選擇是相應子表單的 ID。 如果沒有,您可能需要向我們說明 ID 參數的來源):
Private Sub cmbSelectFrms_AfterUpdate()
Select Case selectSubform(Me.cmbSelectForms)
Case 1
Forms!frm_HRForms!subformHRForms.Form!subform1.Visible = True
Case 2
Forms!frm_HRForms!subformHRForms.Form!subform2.Visible = True
Case 3
Forms!frm_HRForms!subformHRForms.Form!subform3.Visible = True
End Select
End Sub
這里可能還隱藏着其他問題。 但是,將 VBA IDE 設置為需要顯式變量聲明並向每個代碼模塊添加 Option Explicit 將大大有助於您識別問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.