Función Eval

Importante:  Este artículo se ha traducido con traducción automática; vea la declinación de responsabilidades. Para su referencia, puede encontrar la versión en inglés de este artículo aquí.

Puede usar la función Eval para evaluar una expresión que devuelve una cadena de texto o un valor numérico.

Puede crear una cadena y, a continuación, pase a la función Eval como si la cadena fuera una expresión real. La función Eval evalúa la expresión de cadena y devuelve el valor. Por ejemplo, Eval("1 + 1") devuelve 2.

Si se pasa a la función Eval una cadena que contiene el nombre de una función, la función Eval devuelve el valor devuelto de la función. Por ejemplo, Eval("Chr$(65)") devuelve "A".

Sintaxis

Eval expresión de cadena del ()

El argumento de expresión de cadena es una expresión que se evalúa como una cadena de texto alfanumérica. Por ejemplo, la expresión de cadena puede ser una función que devuelve una cadena o un valor numérico. O bien, puede ser una referencia a un control en un formulario. El argumento expresión de cadena se debe evaluar como una cadena o un valor numérico; no puede devolver un objeto de Microsoft Access.

Nota: Los ejemplos siguientes muestran el uso de esta función en un Visual Basic para aplicaciones (VBA). Para obtener más información sobre cómo trabajar con VBA, seleccione la Referencia del programador en la lista desplegable situada junto a Buscar y escriba uno o varios términos en el cuadro de búsqueda.

Nota: Si el nombre de una función que pasa a la función Eval , debe incluir paréntesis después del nombre de la función en el argumento expresión de cadena . Por ejemplo:

' ShowNames is user-defined function.
Debug.Print Eval("ShowNames()")

Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")

Debug.Print Eval("Date()")

Observaciones

Puede usar la función Eval en control calculado en un formulario o informe, o en una macro o módulo. La función Eval devuelve un Variant que es una cadena o un tipo numérico.

El argumento expresión de cadena debe ser una expresión que se almacena en una cadena. Si se pasan a la función Eval una cadena que no contiene una expresión numérica o un nombre de función sino sólo una cadena de texto simple, se produce un error en tiempo de ejecución. Por ejemplo, Eval("Smith") genera un error.

Puede usar la función Eval para determinar el valor almacenado en la propiedad valor de un control. En el ejemplo siguiente se pasa una cadena que contiene una referencia a un control de la función Eval completa. A continuación, se muestra el valor actual del control en un cuadro de diálogo.

Dim ctl As Control
Dim strCtl As String
Set ctl = Forms!Employees!LastName
strCtl = "Forms!Employees!LastName"
MsgBox ("The current value of " & ctl.Name & _
" is " & Eval(strCtl))

Puede usar la función Eval para tener acceso a operadores de expresiones que normalmente no están disponibles en un módulo Visual Basic para aplicaciones (VBA). Por ejemplo, no puede utilizar los operadores SQL entre... Y o en directamente en su código, pero sí puede usarlas en una expresión que se pasa a la función Eval .

En el ejemplo siguiente se determina si el valor de un control de RegiónEnvío en un formulario Pedidos es una de las abreviaturas de estado especificado. Si el campo contiene una de las abreviaturas, intState será True (-1). Tenga en cuenta que usar comillas simples (') para incluir una cadena dentro de otra.

Dim intState As Integer
intState = Eval("Forms!Orders!ShipRegion In " _
& "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

Ejemplo

En el ejemplo siguiente se supone que tiene una serie de 50 funciones definidas como A1, A2 y así sucesivamente. Este ejemplo usa la función Eval para llamar a cada función de la serie.

Sub CallSeries()
Dim intI As Integer
For intI = 1 To 50
Eval("A" & intI & "()")
Next intI
End Sub

En el ejemplo siguiente se activa un evento Click como si el usuario hace clic en un botón de un formulario. Si el valor de propiedad OnClick del botón comienza con un signo igual (=), lo que significa que es el nombre de una función, Eval función llama a la función, lo que equivale a activar el evento Click . Si el valor no empieza con un signo igual, el valor debe nombrar una macro. El método EjecutarMacro del objeto DoCmd ejecuta la macro con nombre.

Dim ctl As Control
Dim varTemp As Variant
Set ctl = Forms!Contacts!HelpButton
If (Left(ctl.OnClick, 1) = "=") Then
varTemp = Eval(Mid(ctl.OnClick,2))
Else
DoCmd.RunMacro ctl.OnClick
End If

Nota: Declinación de responsabilidades de traducción automática: Este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Únase a los participantes de Office Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×