Campo código.

Gracias de antemano, por vuestra aportación a los demás que carecemos de vuestros conocimientos.
Quisiera crear un campo clave que de forma automática me escribiera las tres primeras letras del nombre de una persona y consecutivamente la fecha de nacimiento, y que éste dato quede guardado en la tabla. Ejemplo: Tengo una tabla llamada Trabajadores, en la que tengo los campos Nombre, Apellidos, Domicilio, Fecha_Nac, y otro campo denominado Código. Pues bien lo que pretendo es que en el campo código se escriba automáticamente Fra18121980, si por ejemplo el nombre es Francisco y la fecha de nacimiento 18/12/1980. Gracias.

1 respuesta

Respuesta
1
Mierda, mierda, mierda, si es que tengo el día fatal... esto de que me toque trabajar hoy me tiene frito... anda, quita uno de los paréntesis de detrás del 3 y se lo pones detrás de nombre.
...=left(nz(noseque),3)...
Por cierto que por casualidades de la vida estoy en Écija, Sevilla
Eres ADSl respondiendo, como decimos por Andalucía ¡Pata negra!. Pero me ha salido un nuevo error:
Error de compilación
El argumento no es opcional.
Después dos botones Aceptar-Ayuda, una pulsado Aceptar se abre la ventana de código y esta vez aparece sobreada, en amarillo la frase -Private Sub nombre_AfterUpdate()- y en la línea de código que me enviaste aparece sombreada solamente la palabre -left- pero sin los guiones, estos los he puesto yo en esta nota para delimitar.
Vale, no problema.
Supongo que ya tienes el campo en la tabla, y si no lo añades
Con el formulario lo mismo. Pones los campos de la tabla y también el clave. Posiblemente después de probar que la cosa funciona quieras activarle la propiedad 'bloqueado' para que el usuario no lo pueda cambiar, o incluso quitarle la propiedad 'visible'.
En las propiedades del formulario (recién abierto en vista diseño, le das a ver/propiedades) en la pestaña de 'eventos' buscas el que se llama 'antes de insertar'. Te sitúas en el campo, y le das a los puntos suspensivos para generar código.
Ahí le pones
me.codigo=left(me.nombre,3) & format(me.fecha_nac,"DDMMYYYY")
y a correr.
Mira, esta vez casi sale, ahora ya me escribe en el campo códifo los tres primeros caracteres del nombre, pero de la fecha nada de nada, y mira que he intentado, por mi cuenta, haber si salía cambiando alguna cosa, incluso cambiando el campo fecha por uno de texto, poniendo el mismo código que para el campo nombre, claro. Pero nati de nati. Y digo lo de cerquita, cerquita en un doble sentido ya que el ignorante que solicita tus conocimientos lo hace desde Villamartín (Cádiz), casi vecinos. Gracias.
Hola.Ha salido un error en tiempo de ejecución, te lo transcribo:
Se ha producido el error '-2147352567(80020009)' en tiempo de ejecución: El campo 'Tabla1. Código' no puede ser una cadena de longitud cero.
Después hago clic en depurar, entro en la ventana de código donde aparece toda la linea de código que me enviaste sombreada en amarillo. ¿Qué habrá ocurrido? Yo he repasado todos los pasos que me indicaste y creo estar seguro de no haberme equivocado.
Mmmm me parece que me he colado. El evento antes de insertar se produce cuando se pulsa el primer carácter en un registro nuevo, y en ese momento aún no hay nombre ni fecha de nacimiento. Fallo mio, me temo.
Haz una cosa. Quita lo que te dije (en el evento 'antes de insertar borras lo de [procedimiento de noseque] y lo dejas en blanco y, de la misma manera que antes, en el campo del nombre le pones un evento de 'después de actualizar' y le pones
me. codigo=left(nz(nombre,3)) & format(nz(me. fecha_nac),"DDMMYYYY")
Ahora pones también un evento 'después de actualizar' en la fecha de nacimiento y le pones otra vez lo mismo.
El funcionamiento entonces queda, después de editar cualquiera de los dos campos, calcula el código. El nz vale para que si alguno de los campos aún no está completo le asuma un valor por defecto.
Debe ser que te respondí cuando aún no me había tomado el café... ;-)
Mmm lo he probado todo tal cual te decía y, la verdad, me funciono perfectamente.
Si no te aparece la parte de la fecha al saltar de campo, comprueba que en propiedades/Eventos/Despues de actualizar del campo fecha tienes también la famosa línea... recuerda tiene que estar en LOS DOS campos. Y me extraña que en uno te funcione y en el otro no...
Perdona, Perdona, Perdona... No sé como, puesto que en tus respuestas estaba bien clarito, pero de alguna forma he interpretado que el segundo evento 'después de actualizar' era en el campo código, no en el de fecha. Una vez encontrado mi error ha funcionado perfectamente. Igual me estaba faltando a mi también el café, cuando escribí la línea. Repito, perdona que te haya hecho perder más tiempo del necesario y sobre todo esfuerzo que al final te podría haber ahorrado, pero te lo recompensaré, para mí te mereces un 10, lástima que esta página no me deje valorarte más que con un 5. Un millón de gracias. Hasta la próxima duda... ! AH¡ Y te incluyo en mi lista de favoritos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas