嗨我试着编写一个返回一个对象的函数,但它给我一个参数而不是可选错误,这是我的代码
Public Function searchVehicle(c As String, v As Variant) As Collection
Dim qur As String
qur = "select * from [vehicle] where ( " & c & " like '%" & v & "%')"
Set mobjRst = conn.execQuery(qur)
Dim tmpV As Vehicle
Dim res As Collection
With mobjRst
Do Until .EOF
Set tmpV = New Vehicle
Call tmpV.popVehicle(!ID, !make, !model, !purchaseyear, !totalmilage, !milageafterservice, !servicemilage, !description)
res.Add (tmpV)
.MoveNext
Loop
End With
searchVehicle = res
End Function
答案 0 :(得分:1)
我的第一个想法是,因为它是一个对象引用,你需要使用Set
来设置返回值。
Set searchVehicle = res
了解您遇到问题的路线可能会更有帮助。
作为旁注,您可能还需要查看何时需要使用呼叫,何时不需要:https://blogs.msdn.microsoft.com/ericlippert/2003/09/15/what-do-you-mean-cannot-use-parentheses/
答案 1 :(得分:1)
您的问题在于以下对函数的调用 -
searchVehicle = res
您已指定searchVehicle具有组合集合的字符串(c)和变体(v)。这样会出错,因为您没有为c或v设置任何值,然后调用您的函数 -
searchVehicle = (c, v) collection
向我们提供一些关于如何在按钮点击事件中调用此等信息的更多信息,返回的内容......