Controlar errores en Expresiones |
Responder |
Autor | |
Erick Gamer
Asiduo Unido: 08/Mayo/2016 Localización: Mexico Estado: Sin conexión Puntos: 387 |
Tema: Controlar errores en Expresiones Enviado: 23/Noviembre/2019 a las 04:05 |
Esta pregunta la hice con otro hilo, por ello abro un hilo nuevo para esta pregunta exclusivamente.
Manejo muchas expresiones en consultas, cálculos, concatenaciones, IIF anidados etc, muchas de esas expresiones ya estaban hechas en la base de datos que me han proporcionado, en algunas ocasiones me he topado con errores en esas consultas divisiones entre ceros, IIF con campos vacíos, funciones anidadas etc. Entonces para encontrar la consulta que esta fallando ejecuto paso a paso con Break Point cada una de ellas hasta encontrar la consulta que esta cascando el trabajo, una vez encontrada tengo que evaluar cual de las expresiones esta fallando reconstruyendo una a una cada expresión hasta encontrar el error, la pregunta es, existe algún método o función para encontrar la expresión que casca y no ir reconstruyendo una a una? o cuales son las mejores practicas para minimizar estos errores y/o tenerlos bajo control. Espero me puedan ayudar. Erick Gamer
|
|
Aprendiz de todos, maestro de nadie.
|
|
deneg_nhj
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 03/Septiembre/2012 Localización: Mexico Estado: Sin conexión Puntos: 112 |
Enviado: 23/Noviembre/2019 a las 05:04 |
Una manera de depurar es la siguiente: 1. Numerar las lineas de código 2. Los SQL ejecutarlos mediante una variable por ejemplo var_sSQL = "Update xtable SET xx..... " Currentdb.Execute var_sSQL 3. En el controlador de Errores "supongo que lo tienes" CtrlErr: MsgBox " El error fue : " & Err.Description & _ "El SQL que falló es: " & var_sSQL & _ "En la línea: " & erl, ...... <= Lo que lleva el msgbox He escrito el codigo de memoria, pero esa es la manera de como yo trato de controlar que falla. |
|
Especializado en Microsoft Access, SQL SERVER y Excel
|
|
Erick Gamer
Asiduo Unido: 08/Mayo/2016 Localización: Mexico Estado: Sin conexión Puntos: 387 |
Enviado: 25/Noviembre/2019 a las 00:17 |
Hola gracias por contestar deneg_nhj
1) A qué te refieres con numerar las líneas de código? 2) Lo que comentas es usar código puro sql en las consultas? Para ejecutar ciertas acciones o procesos largos que requieren de muchas consultas, estás las meto en un módulo estándar y vb las va ejecutando una a una. Las consultas las tengo grabadas y con un nombre en base al proceso que ejecutan secuencial mente. Algo así: Import_0001 Import_0003 Entonces usando tu método estás consultas estarían dentro de vba con código puro sql. Si es correcta mi asumpsion hay alguna forma de hacerlo con mis consultas ya definidas? Gracias de antemano Erick Gamer Editado por Erick Gamer - 25/Noviembre/2019 a las 00:19 |
|
Aprendiz de todos, maestro de nadie.
|
|
pitxiku
Colaborador Unido: 27/Septiembre/2017 Localización: En mi casa Estado: Sin conexión Puntos: 1512 |
Enviado: 25/Noviembre/2019 a las 13:04 |
Si numeras las líneas, puedes usar la función Erl para saber en qué línea se produjo él error.
Más opciones: - Usar siempre Option Explicit. Para bases de datos heredadas, revisar todos los módulos y agregar la línea donde falte. - Cuando el código sea muy largo, recortarlo en funciones más pequeñas, para que sea más legible cuando los tengas que revisar dentro de un tiempo. - Con expresiones muy largas, usar varios líneas e intercalar llamadas a Debug.Print para ver cómo se está creando. Luego se pueden borrar/comentar esos Debug. |
|
deneg_nhj
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual Unido: 03/Septiembre/2012 Localización: Mexico Estado: Sin conexión Puntos: 112 |
Enviado: 26/Noviembre/2019 a las 00:59 |
Erick
"Yo", no suelo utilizar consultas guardadas. Todo lo hago con consultas dentro del código de VBA. 1. Numerar las lineas, es ponerles un numero antes de cada instrucción "Hay algunas excepciones" 2. Si utilizas consultas ya guardadas, mi enfoque te permite saber en que consulta falla. 3. No podrás depurar la consulta, pero tendrás una idea de donde falla Saludos! deneg |
|
Especializado en Microsoft Access, SQL SERVER y Excel
|
|
Erick Gamer
Asiduo Unido: 08/Mayo/2016 Localización: Mexico Estado: Sin conexión Puntos: 387 |
Enviado: 29/Noviembre/2019 a las 07:12 |
Gracias por contestar, creo que con las aportaciones realizadas podre mejorar el control de errores en mis aplicaciones, voy a estar probando en caso de alguna otra pregunta abro otro hilo.
Muchas Gracias Erick Gamer
|
|
Aprendiz de todos, maestro de nadie.
|
|
Erick Gamer
Asiduo Unido: 08/Mayo/2016 Localización: Mexico Estado: Sin conexión Puntos: 387 |
Enviado: 02/Diciembre/2019 a las 22:49 |
Pueden cerrar este hilo por favor!!!!
Erick Gamer
|
|
Aprendiz de todos, maestro de nadie.
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |