** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Error en Expresion (Incorrecta)
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoError en Expresion (Incorrecta)

 Responder Responder
Autor
Mensaje
Erick Gamer Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 08/Mayo/2016
Localización: Mexico
Estado: Sin conexión
Puntos: 387
Enlace directo a este mensaje Tema: Error en Expresion (Incorrecta)
    Enviado: 21/Noviembre/2019 a las 19:32
Que tal a todos,

Tengo muchas expresiones en una consulta, he realizado el metodo "Benedictino" que algunas veces me ha mencionado el Sr. Mihura y he encontrado el error en esta expresión.

Dobletes: Left([Dobles A],8) & " " & Mid([Dobles A],9,Len([Dobles A])-8)

Ese campo "Dobles A" puede o no contener valores, si no tiene valor no es nulo es decir tiene un espacio en el campo (nunca es nulo)

Cabe mencionar que esa Expresion ha funcionado por años en la base de datos que manejo, pero ahora me marca el error mostrado en la imagen. 

Estoy tratando de solucionar el error evaluando con un IIF si la longitud del campo es 0 entonces omite la funcion si no ejecutala pero me marca el mismo error.
Esta es la consulta con la que pretendo evaluar:
Expr1: IIf(Len([MiTabla].[Dobles A])=0,"",Left([Dobles A],8) & " " & Mid([Dobles A],9,Len([Dobles A])-8))

Entonces, no se si alguna actualizacion de Windows o Access me este haciendo falta, como repito me la funcion me ha funcionado de maravilla por años pero ahora esta aferrada a no correr.

Algunos otros bugs que me ha ocasionado errores cuando se cierra access me lanza un error que antes tampoco me arrojaba, al igual que un recordset me esta cascando y he tenido que descativarlo para empezar a evaluar el error.

Tengo Windows 2010 con Office 365 pero la version de la base de datos la tengo en Access 97-2003 .mdb

Otra cosa, al tener muchas expresiones en la consulta hay alguna forma, metodo o funcion para detectar cual de todas las expresiones es la que esta cascando el trabajo? Ya que realmente tengo que ir reconstruyendo una a una hasta encontrar cual es la que falla.

Espero puedan ayudarme si es una actualizacion de Windows o Access o como atacar el error de la expresion.


Error al cerrar:


Erick Gamer
Aprendiz de todos, maestro de nadie.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Enlace directo a este mensaje Enviado: 21/Noviembre/2019 a las 20:50
Ponle un Nz al campo para asegurarte de que lleva algo ...

Nz([Dobles A], "")
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Erick Gamer Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 08/Mayo/2016
Localización: Mexico
Estado: Sin conexión
Puntos: 387
Enlace directo a este mensaje Enviado: 21/Noviembre/2019 a las 23:11
Hola Sr Mihura, me tira el mismo error:
IIf(Nz([Dobles A]),"",Left([Dobles A],8) & " " & Mid([Dobles A],9,Len([Dobles A])-8))

Erick Gamer



Aprendiz de todos, maestro de nadie.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Enlace directo a este mensaje Enviado: 22/Noviembre/2019 a las 09:20
Eso que has escrito está mal construido ....

Para entender lo que estás escribiendo lo mejor seria que usaras el generador de expresiones y fueras rellenando valor a valor.

IIf(Condicion, ValorVerdadero, ValorFalso)

donde Condicion:
                             Nz([Dobles A],"") = ""

Ten en cuenta que dependiendo del entorno las , pueden ser ;

Repito, hazlo con el generador de expresiones, empieza con la expresión más simple y ya la irás complicando.

Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Erick Gamer Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 08/Mayo/2016
Localización: Mexico
Estado: Sin conexión
Puntos: 387
Enlace directo a este mensaje Enviado: 23/Noviembre/2019 a las 03:50
Creo lo he logrado aquí esta la función modificada:

Expresion: IIf(Nz([MiTabla.[Dobles A],"")="","",Left([Dobles A],8) & " " & Mid([Dobles A],9,Len([Dobles A])-8))

Que opinan o estoy herrando algo? Si todo esta bien pueden cerrar el hilo, caso contrario favor de hacérmelo saber.

Erick Gamer

Aprendiz de todos, maestro de nadie.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14428
Enlace directo a este mensaje Enviado: 23/Noviembre/2019 a las 10:00
Si te funciona es que estará bien ... LOL
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable