Access - Instrucción Return en visual basic para aplicaciones (Access2013)

   
Vista:

Instrucción Return en visual basic para aplicaciones (Access2013)

Publicado por Dani (5 intervenciones) el 20/01/2014 21:46:21
Hola a todos.

Estoy trabajando con una función en visual basic en access 2013.

En un procedimiento sub llamo a una función en la cual comprueba algo y con un if devuelve un valor u otro.
Al utilizar la expresión Return me da el siguiente error:
"Error de compilación. Se esperaba: Fin de la instrucción"

La línea de return la tengo así:
return datos_validos

donde datos_validos es una variable. También he probado a devolver un literal por ejemplo
return "prueba"

y me da el mismo error.

Muchas gracias por adelantado por su ayuda, un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Norberto

Instrucción Return en visual basic para aplicaciones (Access2013)

Publicado por Norberto (432 intervenciones) el 24/01/2014 08:40:35
Hola.

En VB no se usa Return para devolver el valor de una función sino la expresión NombreFunción = Resultado.

En tu caso, la cosa sería así:

1
2
3
4
5
6
7
Function NombreFunción(Parámetro As TipoDatos) As TipoDatos
    If Parámetro = ValorDeComparación Then
        NombreFunción = ValorDevuelto1
    Else
        NombreFunción = ValorDevuelto2
    End If
End Function

En cursiva va lo que debes de reemplazar por los nombres, expresiones, etc. correspondientes.

Un saludo,

Nor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Instrucción Return en visual basic para aplicaciones (Access2013)

Publicado por Dani (5 intervenciones) el 25/01/2014 14:42:09
Gracias Norberto, me ha servido perfectamente.

Una última duda por favor, cuando la ejecución de código llega a la línea donde pones:
nombre_función=valor_a_retornar

En ese momento la ejecución de código se detiene y vuelve al procedimiento que la llamó o continúa adelante en la misma función?
He leído sobre Exit Function pero no se si es obligatorio utilizarlo o si tras la asignación del valor devuelto la función se detiene.
¿Existen más instrucciones similares a Exit Function?

Muchas gracias y un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Norberto

Instrucción Return en visual basic para aplicaciones (Access2013)

Publicado por Norberto (432 intervenciones) el 27/01/2014 08:58:09
Hola de nuevo.

El hecho dar valor de salida a la función no detiene la ejecución del código. Éste llega hasta el final a no ser que se use Exit Function. Lo lógico es que no haya código después de dar valor a la función ya que no produciría ningún efecto. Es decir que lo último que se pone en una función es la asignación del valor de salida. No obstante, el ejemplo que te puse antes también podría ser de la siguiente manera:

1
2
3
4
5
6
7
8
Function NombreFunción(Parámetro As TipoDatos) As TipoDatos
    NombreFunción = ValorDevuelto2 ' Asignamos un valor predeterminado pero el código continúa
 
    If Parámetro = ValorDeComparación Then 'Si se cumple la condición se cambia el valor devuelto
        NombreFunción = ValorDevuelto1
    End If
 
End Function

Espero que te haya quedado claro. Un saludo,

Nor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Instrucción Return en visual basic para aplicaciones (Access2013)

Publicado por Dani (5 intervenciones) el 27/01/2014 19:19:42
Gracias Norberto!

Todo claro, explicas muy bien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar