** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Uso de NZ ¿obligatorio?
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoUso de NZ ¿obligatorio?

 Responder Responder
Autor
Mensaje
maria35 Ver desplegable
Habitual
Habitual


Unido: 20/Enero/2016
Localización: España
Estado: Sin conexión
Puntos: 127
Enlace directo a este mensaje Tema: Uso de NZ ¿obligatorio?
    Enviado: 31/Marzo/2016 a las 12:19
Hola amigos, tengo una duda y prefiero preguntarles antes de hacer nada. Es una duda con el uso de nz y es si merece la pena usarlo al asignar un valor a cualquier variable, campo, etc. Yo lo uso pero no de forma masiva y me he dado cuenta que muchos de los fallos que dan mis programas son por asignar valores nulos y los corrijo con nz ¿me aconsejais ponerlos siempre que tenga una instrucción tipo strMarca=rstMarcas!Descripcion y así asegurarme menos fallos?
Gracias

Arriba
OmniPresente Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Febrero/2009
Localización: España
Estado: Sin conexión
Puntos: 1870
Enlace directo a este mensaje Enviado: 31/Marzo/2016 a las 13:23
Yo solo lo utilizo para convertir un posible Null a valor cero y no me "rompa" las operaciones, pero nunca con campos tipo texto, como parece que comentas. ¿Qué fallos te da?.

Saludos.
Arriba
maria35 Ver desplegable
Habitual
Habitual


Unido: 20/Enero/2016
Localización: España
Estado: Sin conexión
Puntos: 127
Enlace directo a este mensaje Enviado: 31/Marzo/2016 a las 13:26
Me casca la aplicación por tener valores nulos pero tanto números como texto. Por ejemplo el típico caso que en cantidad en vez de que el usuario meta un cero lo borra y al pasar ese valor a una variable y ser nulo pues casca. Lo corrijo con el nz pero yo no se si es mejor siempre que asigne un valor usar el nz.
Gracias
Arriba
E. Feijoo Ver desplegable
Moderador
Moderador


Unido: 16/Abril/2004
Localización: España
Estado: Sin conexión
Puntos: 19948
Enlace directo a este mensaje Enviado: 31/Marzo/2016 a las 14:03
Los errores se deberían 'corregir' antes de que se produzcan y no haciendo parches para que funcionen.

Si un objeto 'tiene dependencias', en una aplicación correctamente diseñada, se le debería exigir un valor antes de abandonarlo y si se le 'abandona por causa mayor' se debería abortar el conjunto de la acción.

Es cuestión de hacer las cosas de forma correcta y no de barrer y esconder los restos 'debajo de la alfombra' (que es lo que se hace con el uso innecesario de NZ y de las rutinas de error).

En fin, en una buena praxis, se ha de prever el accidente y no esperar al primer muerto para arreglar los baches de la carretera (o poner aceras).
Arriba
jilo Ver desplegable
Colaborador
Colaborador


Unido: 19/Diciembre/2004
Localización: TAFALLA
Estado: en línea
Puntos: 949
Enlace directo a este mensaje Enviado: 31/Marzo/2016 a las 17:01
E. Feijoo tiene el 100% de razón.... Pero luego dentro de una aplicación suele pasearse Murphy y lo que tiene que cascar, casca.
Yo suelo usar
Trim(nz(miObjeto,""))=""  Cuando es texto
Trim(nz(miObjeto,0))=0    Cuando es numero

Con el Trim acotas un poco mas la entrada del dato ya que un impulso del espaciador, sin el Trim, No es nulo pero te podría un error...
Espero te sirva

Espero te sirva
Espero te sirva !!!!!!
Iñaki
Arriba
maria35 Ver desplegable
Habitual
Habitual


Unido: 20/Enero/2016
Localización: España
Estado: Sin conexión
Puntos: 127
Enlace directo a este mensaje Enviado: 31/Marzo/2016 a las 17:08
hola e. feijoo tienes razón, yo siempre procuro evitar que ocurran errores pero a veces se te escapan cosas y mira qeu lo intento pero salen cosillas como en todo programa. Todavía no conozco el programa perfecto, yo por lo menos no lo he conseguido.
Gracias

Arriba
E. Feijoo Ver desplegable
Moderador
Moderador


Unido: 16/Abril/2004
Localización: España
Estado: Sin conexión
Puntos: 19948
Enlace directo a este mensaje Enviado: 31/Marzo/2016 a las 18:22
Cuando logres el programa 'perfecto', cambiaran la version de Access y vuelta a comenzar (sobre todo con parches a diestro y siniestro).

Lo único que puedes hacer (en aras de minimizar los problemas) es definir si un dato es necesario o 'de compañía', esto es:

En el supuesto de que se este creando un nuevo registro, hay campos a los que por diseño se les marca como 'requeridos' y otros que sin ser requeridos se utilizan como elementos de enlace y el resto como información adicional (están solo a titulo informativo, sin ellos funcionara igual).

Es a los dos tipos primeros a los que 'hay que someter a control', unos ya lo hace la propia gestión de Access (los marcados como requeridos), a los otros es nuestra obligación el verificar la validez del dato y no conformarse con dejarlo como NULL, y de dejarlo como tal (por ejemplo una fecha indeterminada que se cumplimentaría mas tarde) dado que se parte del supuesto de que 'controlamos la línea de ejecución de la aplicación' o bien se descartan o bien de necesitarlos se les requiere, de forma tal que 'cuando se utilice' cumpla el propósito para el que fue diseñado (y el único que de entrada conoce la funcionalidad de cada uno es: el creador de la aplicación).

El utilizar NZ por todas partes o rutinas de control del tipo 'salta a la línea siguiente' (barrer para debajo de la alfombra) solo lleva a perder mucho tiempo en la 'localización de la alfombra' y del (ahora declarado públicamente) error en la gestión de datos.

En fin, hay que aspirar a la perfección e intentar alcanzarla (conformarse solo lo hacen los vendedores, no los programadores).

No amontones cosas, crea un diagrama de flujo (la primera vez parece una montaña, pero la segunda 'es pan comido') y analiza fríamente lo que tienes (o mejor que lo analice un extraño y si tiene 'síntomas de gafe' mejor), por experiencia personal puedo decirte que 'nuestra vision es parcial' y ocurre con estas creaciones lo mismo que con los hijos: si no le gusta 'lo verde' se evita de forma inconsciente el ofrecérselo (y creemos que lo alimentamos bien), es sin lugar a dudas lo mas difícil de los creadores, ser capaces de ver de forma impersonal una creación propia .... ¿orgullo de padres? ...
Arriba
maria35 Ver desplegable
Habitual
Habitual


Unido: 20/Enero/2016
Localización: España
Estado: Sin conexión
Puntos: 127
Enlace directo a este mensaje Enviado: 01/Abril/2016 a las 09:39
Mejor explicado imposible E. Feijoo, eres un genio, tienes toda la razón, eso quería saber y me has hecho darme cuanta que de vez en cuando un error sirve para pulir nuestra aplicación y ver fallos que nosotros no hemos visto.
Sigo lo que me dices pues me parece perfecto, hay que mejorar las cosas, no taparlas.
Gracias
podéis cerrar el hilo amigos

Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable