如何在一个带有参数visual basic 6的函数中返回一个对象

时间:2016-08-25 07:11:48

标签: vb6

嗨我试着编写一个返回一个对象的函数,但它给我一个参数而不是可选错误,这是我的代码

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

2 个答案:

答案 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

向我们提供一些关于如何在按钮点击事件中调用此等信息的更多信息,返回的内容......