在我的數據庫中,我有一個模塊中的公共函數,它接收一個SQL字符串並返回一個打開的記錄集。此功能在由其他公共子公司調用時很好,無論是在此模塊還是在其他模塊中。在不同模塊中訪問VBA表單Private Sub調用公共函數
但是,如果我嘗試使用相同的確切代碼調用相同的函數,我會收到一個編譯錯誤:「錯誤的參數數量或無效的屬性分配。」
如果我將正確的代碼剪切並粘貼到不同的模塊中作爲公共子,它將正常工作。我懷疑這個問題與命名或隱藏的變量有關。不幸的是,我無法通過搜索找到任何解決方案。
Public Function Query(SQL As String) As ADODB.Recordset
Dim cnnConn As ADODB.Connection
Dim rsRecord As New ADODB.Recordset
Set cnnConn = CurrentProject.Connection
rsRecord.ActiveConnection = cnnConn
rsRecord.Open SQL
Set Query = rsRecord
End Function
Private Sub Setup()
Dim rs As New ADODB.Recordset
Dim SQL As String
SQL = "Select * FROM [Configuration]"
Set rs = Query(SQL) <--- Compile Error
rs.Close
End Sub
任何幫助,非常感謝。
如果將函數從Query改名爲fnQuery,則將其返回值更改爲Set fnQuery = rsRecord,然後將Setup()更改爲'設置rs = fnQuery(SQL)'...它工作嗎? – HansUp
電力在辦公室裏走了出來,然後我可以試一試。我會在星期一進行測試。謝謝。 – Del
就是這樣。謝謝。我以爲我的名字很清楚,因爲它是從另一個分支開始工作的。希望這會教會我遵循適當的命名語法。 – Del