2012-01-03 18 views
6

Cómo devolver el valor de la funciónCómo devolver el valor de la función

Código

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 

Cómo devolver el valor del código de seguridad.

Necesita Ayuda Código VB6

Respuesta

9

es necesario especificar el tipo de retorno.

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 

Aquí es una link que es una buena lectura para la comprensión de las funciones en VB6

EDITAR

Después de leer su comentario, me gustaría crear una clase para guardar sus valores.

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

A continuación, puede crear una instancia de una nueva instancia de esta clase en el interior de su código:

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

Si quiero enviar múltiples valores medios, ¿cómo modificar mi código, por ejemplo nombre, departamento, país que quiero volver, por lo que tengo que modificar mi código .... – Gopal

+0

no puedo poder para devolver el conjunto de resultados completo ...? – Gopal

+0

@Gopal: ver la respuesta modificada. –

2

Es necesario que ajuste el valor al nombre de la función y el tipo de retorno:

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 

Consulte this document para obtener más información.

+0

Si quiero enviar múltiples valores significa, por ejemplo, nombre, departamento, país que quiero devolver, para eso tengo que modificar mi código ... – Gopal

+0

@Gopal - ¿Por qué no devuelve todo el conjunto de resultados? O crea un objeto para mantener estos valores y devuelve eso. – Oded

+0

Ok, devolveré el conjunto de resultados; desde el otro extremo, ¿cómo puedo usar ese conjunto de registros? Por ejemplo, devuelvo el rdo del conjunto de resultados y luego, en la forma del formulario, cómo puedo usar ese resultado de rdo. ¿Pueden ayudarme? – Gopal

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 
Cuestiones relacionadas