Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En los casos en los que necesite crear cadenas concatenadas, puede que tenga que insertar una cadena dentro de otra, o bien una variable de cadena dentro de una cadena. Éstas son algunas situaciones en las que puede tener que anidar una cadena dentro de otra:
Al especificar criterios para funciones de agregado de dominio.
Al especificar criterios para los métodos Find.
Al especificar criterios para la propiedad Filter o ServerFilter de un formulario.
Al crear cadenas SQL.
En todos estos casos, Access debe pasar una cadena al motor de base de datos de Access. Al especificar un argumento criteria para una función de agregado de dominio (por ejemplo, Access tiene que evaluar todas las variables, concatenarlas en una cadena y, después, pasar toda la cadena al motor de base de datos de Access).
Si inserta una variable numérica, Access evalúa la variable y simplemente concatena el valor en la cadena. Sin embargo, si la variable es una cadena de texto, la cadena de criterio resultante contendrá una cadena dentro de otra. Para identificar una cadena dentro de otra es necesario emplear delimitadores de cadena. En caso contrario, el motor de base de datos de Access no podrá determinar qué parte de la cadena es el valor que se desea usar.
En realidad, los delimitadores de cadena no son parte de la variable en sí, pero hay que incluirlos en la cadena del argumento criteria. Hay tres formas distintas de construir la cadena del argumento criteria. Cada método produce un argumento criteria parecido a uno de los ejemplos siguientes.
"[LastName] = 'Smith'"
"[LastName] = ""Smith"""
Comillas simples
Necesita incluir comillas simples en el argumento criteria de forma que, cuando el valor de la variable se concatene en la cadena, quede delimitado dentro de las comillas simples. Por ejemplo, imagine que el argumento criteria necesita contener una variable de cadena denominada strName
. Puede crear el argumento criteria, como en el ejemplo siguiente:
"[LastName] = '" & strName & "'"
Cuando la variable strName
se evalúe y concatene en la cadena criteria, la cadena criteria quedará de la siguiente forma:
"[LastName] = 'Smith'"
Nota:
Esta sintaxis no permite el uso de apóstrofos (') dentro del valor de la variable. Si en el valor de la variable de cadena hay un apóstrofo, Access generará un error en tiempo de ejecución. Si la variable puede representar valores que contienen apóstrofos, puede usar uno de los otros formatos de sintaxis que se explican en las secciones siguientes.
Incluir comillas dobles
Necesita incluir comillas dobles en el argumento criteria de forma que, cuando se evalúe el valor de la variable, se delimite mediante comillas dobles. En una cadena, debe utilizar dos juegos de comillas dobles para representar un único juego de comillas dobles. Puede crear el argumento criteria, como en el ejemplo siguiente:
"[LastName] = """ & strName & """"
Cuando la variable strName
se evalúa y concatena con el argumento criteria, cada par de comillas dobles se reemplaza por una sola comilla simple. El argumento criteria se convierte en:
"[LastName] = 'Smith'"
Esta sintaxis puede parecer más compleja que la de las comillas simples, pero permite incluir cadenas que contengan apóstrofos en el argumento criteria. También permite anidar una o varias cadenas dentro de la cadena anidada.
Incluir una variable que represente comillas
Puede crear una variable de cadena que represente las comillas dobles y concatenarla al argumento criteria junto con el valor de la variable. La representación ANSI para comillas dobles es Chr$(34)
; puede asignar este valor a una variable de cadena denominada strQuote
. Luego, puede formar el argumento criteria como en el ejemplo siguiente:
"[LastName] = " & strQuote & strName & strQuote
Cuando las variables se evalúan y concatenan en el argumento criteria , el argumento criteria se convierte en:
[LastName] = "Smith"
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.