Funciones de cadena en Sql de Access

Te estaría muy agradecido si pudieras informarme de como puedo sustituir la función de sql nativo replace o decode para poder utilizarla en una consulta de access sql.

3 respuestas

Respuesta
1
La verdad es que no se que hacen esas funciones de sql nativo. Si me lo dices fijo que te puedo ayudar
CArLeS!
Muchas gracias por tu respuesta, te lo explico un poco mejor. Lo que realmente necesito es una función que me permita sustituir uno o varios caracteres, por otros caracteres dentro de una cadena.
En en Sql de Oracle dicha función se llama replace, pero dentro del Sql que utiliza access no me la reconoce. Utilizo Access2000.
Para solucionar esto, crea una función pública en un módulo. Ahí puedes utilizar código visual basic y luego esa función la podrás llamar desde una consulta SQL-Access. ´
Crea un nuevo módulo y añade el siguiente código:
Public Function SUSTITUIR(sSource As String, sText As String, sNewText As String) As String
SUSTITUIR = Replace(sSource, sText, sNewText, , , vbTextCompare)
End Function
Ahora podrás utilizar la función en tus consultas. Para hacerlo, aquí tienes la descripción de los parámetros:
SSource (primero parámetro) -> cadena original
sText (segundo parámetro) -> subcadena que quieres sustituir
sNewText (tercer parámetro) -> texto que sustituirá a la cadena sText
Un ejemplo sería (con una tabla ficticia, luego lo adaptas a tu estructura):
SELECT TablaA.Campo1, SUSTITUIR(TablaA.Campo2;"Pepe";"Luís")
FROM Tabla
Ahora, cada vez que en el campo2 de tabla haya "Pepe", la consulta mostrará Luís en su lugar.
Espero que te haya ayudado. SUERTE
CArLeS!
Respuesta
1
A partir de la versión 2000 de Access, la función Replace de SQL tiene su homónimo en Access, con las mismas características.
Si utilizas versiones anteriores, puedes utilizar una consulta de actualización, para actualizar un campo por un valor nuevo, y en los criterios de selección indicar el valor antiguo que se desea reemplazar.
Muchas gracias por tu respuesta, pero creo que no me he explicado bien. Lo que realmente necesito es una función que me permita sustituir uno o varios caracteres, por otros caracteres dentro de una cadena.
En en Sql de Oracle dicha función se llama replace, pero dentro del Sql que utiliza access no me la reconoce. Utilizo Access2000.
Creo que si entendí tu pregunta desde el principio, lo que no tengo muy seguro, es que en la versión de Access 2000 exista la función Replace, pero en Access XP, que es la versión que yo utilizo, la he localizado y para que veas su método y funcionamiento, la acompaño para que la eches un vistazo.
Replace (Función)
Descripción
Devuelve una cadena en la que se reemplazó una subcadena especificada con otra subcadena un número especificado de veces.
Sintaxis
Replace(expresión, encontrar, reemplazarCon [, inicio[, contar[, comparar]]])
La sintaxis de la función Replace consta de los siguientes argumentos con nombre:
Parte Descripción
Expresión Requerido. Una expresión de cadena que contiene la subcadena que reemplazar.
Encontrar Requerido. La subcadena que se busca.
ReemplazarCon Requerido. La subcadena de sustitución.
Inicio Opcional. La posición dentro de la expresión donde se empezará a buscar la subcadena. Si se omite, se supone que es 1.
Contar Opcional. El número de sustituciones de subcadenas que se realizarán. Si se omite, el valor predeterminado es -1, que significa que se hagan todas las sustituciones posibles.
Comparar Opcional. El valor numérico que indica la clase de comparación que se realizará cuando se evalúen las subcadenas. Vea la sección Valores para consultar los valores posibles.
Valores
El argumento comparar puede tener los valores siguientes:
Constante Valor Descripción
VbUseCompareOption -1 Realizar una comparación utilizando el valor de la instrucción Option Compare.
VbBinaryCompare 0 Realiza una comparación binaria.
VbTextCompare 1 Realizar una comparación basada en el texto.
VbDatabaseCompare 2 Sólo para Microsoft Access. Realizar una comparación basada en la información de su base de datos.
Valores de retorno
La función Replace devuelve los valores siguientes:
Si Reemplazar devuelve
Expresión es de longitud cero Una cadena de longitud cero ("").
expresión es Null Un error.
Encontrar es de longitud cero Una copia de expresión.
ReemplazarCon es de longitud cero Una copia de expresión con todas las apariciones de encontrar quitadas.
Inicio > Len(expresión) Una cadena de longitud cero.
Contar es 0 Una copia de expresión.
Comentarios
El valor de retorno de la función Replace es una cadena con sustituciones hechas que comienza en la posición especificada por inicio y concluye al final de la cadena expresión. No es una copia de la cadena original desde el inicio al final.
Esta función se puede utilizar en consultas de Access, en el código VBA, en formularios e informes, etc.
Respuesta
1
Si entiendo tu pregunta, tu necesitas hacer una actualización de consulta en Access, tu debes usar la consulta de actualización(UPDATE), fíjate el help de access ahí describe la sintaxis, si no es lo que deseas me reescribes más detallado
Saludos
Mario
Orlando florida

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas