vb6
  • return-value
  • 2012-01-03 50 views 6 likes 
    6

    返回值如何從函數返回值如何從功能

    代碼

    Private Function LeaveCheck(empid As String) 
        Dim rdoRs1 As rdoResultset 
        Dim desc As String 
        Dim sSQL As String 
        sSQL = "Select name from table1 wher empcode = '" & empid & "'" 
        Set rdoRs1 = Rdoconn.OpenResultset(sSQL, rdOpenStatic) 
        If rdoRs1.RowCount > 0 Then 
        desc = rdors1!name   
        return desc 'Showing error in this line  
        End If 
        rdoRs1.Close 
    End Function 
    

    如何從上面的代碼返回值。

    需要Vb6代碼幫助

    回答

    9

    您需要指定您的返回類型。

    Private Function LeaveCheck(empid As String) As String ' Notice the As String 
        Dim rdoRs1 As rdoResultset 
        Dim desc As String 
        Dim sSQL As String 
        sSQL = "Select name from table1 wher empcode = '" & empid & "'" 
        Set rdoRs1 = Rdoconn.OpenResultset(sSQL, rdOpenStatic) 
        If rdoRs1.RowCount > 0 Then 
         desc = rdors1!name   
        End If 
        rdoRs1.Close 
    
        LeaveCheck = desc ' This will be blank or populated 
    End Function 
    

    這裏是一個link是在VB6

    編輯

    理解函數讀取您的評論後,一個良好的閱讀,我將創建一個類來存儲你的價值觀。

    Public Class MyClass 
        Dim name As String 
        Dim dept As String 
        Dim country As String 
    End Class 
    

    然後,您可以實例化這個類的一個新實例的代碼裏面:

    Private Function LeaveCheck(empid As String) As MyClass 
        Dim myClass As New MyClass 
        Dim rdoRs1 As rdoResultset 
        Dim sSQL As String 
        sSQL = "Select name, dept, country from table1 wher empcode = '" & empid & "'" 
        Set rdoRs1 = Rdoconn.OpenResultset(sSQL, rdOpenStatic) 
        If rdoRs1.RowCount > 0 Then 
         myClass.name = rdors1!name   
         myClass.dept = rdors1!dept 
         myClass.country = rdors1!country 
        End If 
        rdoRs1.Close 
    
        LeaveCheck = myClass 
    End Function 
    
    +0

    如果我想發送多個值意味着,你如何修改我的代碼,例如姓名,部門,國家,我想回來,對於我有什麼修改我的代碼.... – Gopal 2012-01-03 10:21:03

    +0

    我能不能返回完整的結果集....? – Gopal 2012-01-03 10:29:26

    +0

    @Gopal:查看修改後的答案。 – 2012-01-03 10:30:33

    2

    您需要設置值函數名和返回類型:

    Private Function LeaveCheck(empid As String) As String 
        Dim rdoRs1 As rdoResultset 
        Dim desc As String 
        Dim sSQL As String 
        sSQL = "Select name from table1 wher empcode = '" & empid & "'" 
        Set rdoRs1 = Rdoconn.OpenResultset(sSQL, rdOpenStatic) 
        If rdoRs1.RowCount > 0 Then 
         desc = rdors1!name   
        End If 
        rdoRs1.Close 
    
        LeaveCheck = desc 
    
    End Function 
    

    請參閱this document瞭解更多信息。

    +0

    如果我想發送多個值的手段,例如名稱,部門,國家我想要返回,爲什麼我必須修改我的代碼.... – Gopal 2012-01-03 10:21:37

    +0

    @Gopal - 爲什麼不返回整個結果集?或者創建一個對象來保存這些值並返回。 – Oded 2012-01-03 10:22:50

    +0

    好的,我會從另一端返回結果集,我如何使用該記錄集。例如,我返回resultdo rdo然後在formload中,我如何使用該rdo結果,你能幫我... – Gopal 2012-01-03 10:26:44

    0
    Function returnArray() As Variant 
        RTA[ab]=0 
        if a=b then RTA[ab]=1 
    
        RTA[xy]=0 
        if a=b then RTA[xy]=1 
    
        returnArray=RTA 
    end function 
    
    相關問題