Access - DATOS EN UN CAMPO DE UN FORMULARIO

   
Vista:

DATOS EN UN CAMPO DE UN FORMULARIO

Publicado por Cristian (10 intervenciones) el 21/03/2017 21:52:41
BUENAS TARDES TENGO UN FORMULARIO EN ACCESS 2010 Y EN EL CAMPO NUMERO DE VALIJA ALMACENA EL NUMERO DE ID DE LA TABLA VALIJA, QUE ES CONSECUTIVO.

EJEMPLO
NUMERO VALIJA 1

Y LO QUE DESEO HACER SI SE PUEDE ES QUE ESE 1 SE VEA ASI:

NUMERO DE VALIJA INSSR-1-2017

ESPERO ME PUEDAN AYUDAR

Captura-VALIJA
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

DATOS EN UN CAMPO DE UN FORMULARIO

Publicado por Jesús Manuel (318 intervenciones) el 22/03/2017 08:59:06
Inserta un campo de texto en tu formulario, en Propiedades/Datos/Origen del control:

="INSSR-" & [id] & "-2007"

Cambia el nombre del campo Id que uso yo por el del campo número de valija


Ahora solo tienes que ocultar el campo que tenias y dejar visible es nuevo campo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

DATOS EN UN CAMPO DE UN FORMULARIO

Publicado por Cristian (10 intervenciones) el 22/03/2017 16:35:46
Buenos días Jesús Manuel.


Excelente el aporte, me quedó genial. Muchísimas gracias!!!

Ahora el problema que tengo es que no me esta guardando esos datos en la TABLA VALIJA, en la columna NUMERO VALIJA.

Que puedo hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jorge

DATOS EN UN CAMPO DE UN FORMULARIO

Publicado por jorge (251 intervenciones) el 22/03/2017 21:38:56
te hice un ejemplo ojala y sea lo que necesites solo que yo puse el numero de balija asi. INSSR-01-2017.

BUENO TE LO DEJO AQUI AVER SI TE SIRVE SALUDOS DESDE MEXICOOO. ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DATOS EN UN CAMPO DE UN FORMULARIO

Publicado por Jesús Manuel (318 intervenciones) el 23/03/2017 08:12:27
Muy buenas Jorge, en el archivo que has dejado hay un par de errores:

- Si insertas varios registros, al llegar a 10 el contador vuelve a 2 y se repiten los números de valija
- Si no tienes ningún registro, no crea el registro 01 y salta un error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DATOS EN UN CAMPO DE UN FORMULARIO

Publicado por Jesús Manuel (318 intervenciones) el 23/03/2017 08:34:34
Creo que habría que plantearse varias preguntas:

- Solo necesitas la base de datos para guardar facturas de 2017? Porque con este sistema, al llegar a 2018 el campo autonumerico no va a tener mucho sentido, y non tendrás la factura INSSR-1-2018 de forma fácil.

- Vas a necesitar ordenar las facturas por el numero de factura, porque este campo será tipo texto y al ordenar, la factura nº 11 estará antes que la 8. Sería necesario un formato tal que INSSR-0001-2017, considerando la estimación de facturas anuales. Pongamos que si emites normalmente 60 facturas en un año, con 2 posiciones será suficiente.

- Utilizas un campo ID, que entiendo que es autonumerico, para el número de factura, pero que pasa si eliminas un registro o tienes un fallo al crear uno, y el autonumerico te salta un valor. Creo que tendrias que usar un campo númerico y hacer por código un falso autonúmerico.


En este link tienes varios ejemplos para hacer un autonumerico: http://www.accessyexcel.com/cinco-formas-de-generar-un-valor-unico-para-usarlo-como-campo-clave/


Si solo quieres facturas para el año 2017, tendrías que tener dos campos en tu base: ID, tipo númerico, y NumeroValija, tipo texto. Llamaremos a la tabla tblValija. Tendrías que usar el código del ejemplo 1 de la web anterior y sustituir los nombres de los campos y tablas por lo que tienes. Luego añadimos un línea extra para generar el valor de NumeroValija:

Private Sub Form_Current()
If Me.NewRecord Then
Me.ID = Nz(DMax("ID","tblValija"),0) + 1
Me.NumeroValija = "INSSR-" & Me.ID & "-2017"
End If
End Sub


Si quieres que la base reinicie el NumeroValilja cada año, tendrías que adaptar el ejemplo 4 de la web anterior. En este caso solo necesitas el campo NumeroValija, tipo texto, y tendrías que seguir los pasos del ejemplo 4, pero teniendo en cuenta como es tu NumeroValija, piensa en la segunda pregunta que te he planteado al principio, y como el del ejemplo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DATOS EN UN CAMPO DE UN FORMULARIO

Publicado por Cristian (10 intervenciones) el 23/03/2017 16:39:49
Buenos días Jesús Manuel:

De verdad te agradezco mucho su tiempo, ayuda y comentarios.

Le cuento brevemente, yo en Access soy inexperto como habrás notado, esto base de datos la he realizado con un manual de Internet y nace por una necesidad que tenemos en la empresa de seguros donde trabajo.

La idea es básicamente tener dos tablas: TABLA RECIBOS y TABLA VALIJA.

En la tabla recibos lo que hacemos es anotar el numero de poliza que paga un cliente y guardarla en esa tabla.

En esta tabla se hace un informe que totaliza por fecha los recibos cobrados por linea de seguro, es este caso hice un picklist donde quien ingresa el recibo, escoge la linea, ejemplo AUT, ACI, AUC, etc., aquí tengo una duda, y es si en ese informe resumen de cada día puedo hacer una suma de solo algunas lineas especificas de ese picklist.

Por otra parte está, la TABLA VALIJA, que lo que se pretende es guardar un consecutivo con: numero de valija, quien envía, quien recibe, etc., y este consecutivo de número de valija es de enero a diciembre, reiniciando cada año en enero con 1, pero cambiando al año nuevo. Ej: en enero seria: INSSR-00001-2017 y el próximo enero iniciaría de nuevo en INSSR-00001-2018 y asi sucesivamente cada nuevo año.

Si me puedes ayudar con eso te lo agradecería montones.

Por otro lado vos me hablas de codigo y no tengo idea de donde se ve o se abre eso, que pena.

Además si gustas y te parece te puedo mandar el archivo con la base de datos y lo que tengo hasta ahora.

Saludos y quedo a la espera de sus comentarios.

De nuevo muchísímas gracias por toda la ayuda. [/title]



Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DATOS EN UN CAMPO DE UN FORMULARIO

Publicado por Jesús Manuel (318 intervenciones) el 24/03/2017 08:57:49
El tema del informe, mejor ponlo en un nuevo post y detalla la información de tablas y campos a los que afecta y que quieres en paticular

En cuanto al falso autonúmerico: voy a partir de una tabla que llamare tblValija y de un campo tipo texto que llamare NumeroValija

En el formulario, tendremos el campo NumeroValija e insertaremos un nuevo campo de texto llamado txtNumeroValija. Los otros campos ya son cosa tuya, pero no van a afectar para generar el falso autonumerico.

El campo NumeroValija estara invisible y el txtNumeroValija será visible. Puedes variar la opción visible en las propiedades del campo, pestaña Formato, la 3ª opción Visible = Si o No

En tu formulario, en vista Diseño (botón derecho sobre el fondo del formulario y ya ves esta opción) y en Propiedades del formulario (si no ves la ventana de propiedades, botón derecho sobre el fondo del formulario y es la penúltima opción).

Vamos a la pestaña eventos, y pondremos código en dos eventos, en función del idioma en el que tengas Access, será:

- Al activar registro / Current: al pinchar sobre el verás un botón con tres puntitos, pinchamos sobre este botón y en la ventana que salta, elegimos Generador de código. Ya estamos en el editor de código visual basic, por defecto tienes la sentencia de apertura y cierre de Form_Current, que va a quedar tal que:

Private Sub Form_Current()
If Me.NewRecord Then
Me.txtNumeroValija = "INSSR-" & Format(Nz(DMax("Val(Mid(NumeroValija, 7, 5))", "tblValija", "Val(Right(NumeroValija, 4))= " & Year(Date)), 0) + 1, "00000") & "-" & Year(Date)
Else
Me.txtNumeroValija = Me.NumeroValija
End If
End Sub


- Antes de Actualizar / BeforeUpdate: de nuevo, botón tres puntitos, generador... y en este caso quedará:

Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me.NewRecord Then
Me.NumeroValija = "INSSR-" & Format(Nz(DMax("Val(Mid(NumeroValija, 7, 5))", "tblValija", "Val(Right(NumeroValija, 4))= " & Year(Date)), 0) + 1, "00000") & "-" & Year(Date)
End If
End Sub


Tienes que cambiar el nombre de la tabla que tu tienes por el que he usado en estas líneas de código y también del nombre del campo NumeroValija. El campo de texto que crees nuevo, ponle ya como nombre txtNumeroValija


Lo que estamos haciendo es que cuando creamos un registro nuevo, descomponemos el numero de valija INSSR-00001-2017 para sacar el valor a incrementar, 00001, como es un dato tipo texto, lo pasamos a número y buscamos el valor máximo en la tabla, para luego incrementar en +1, siempre que el año del número coincida con el año de la hora del sistema. Esto lo mostramos en el campo txtNumeroValija y lo guardamos en el campo NumeroValija al guardar el registro.

Si no se trata de un registro nuevo, en txtNumeroValija mostramos el valor que tenemos guardado en el campo NumeroValija.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jorge

DATOS EN UN CAMPO DE UN FORMULARIO

Publicado por jorge (251 intervenciones) el 24/03/2017 15:24:02
mi felicitaciones para ti master jesus manuel ya cheke el codigo y funciona excelente , y con esi aprendi algo nuevoo jejejejje gacias master jesus manuel por compartir tus conociemientos als que apenas que estamos aprendiendoo . cristian ya solo es cuestion de seguir los pasos que te menciona el master y que se taran taran ..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DATOS EN UN CAMPO DE UN FORMULARIO

Publicado por Cristian (10 intervenciones) el 24/03/2017 17:30:04
Buenos días Jesús Manuel:

Hice lo que me dijiste pero me da este error:


Captura1

y este otro


Captura2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DATOS EN UN CAMPO DE UN FORMULARIO

Publicado por Cristian (10 intervenciones) el 24/03/2017 17:52:43
Adjunto bases de datos para su revisión si le parece.

Saludos y nuevo muchísimas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

DATOS EN UN CAMPO DE UN FORMULARIO

Publicado por Jesús Manuel (318 intervenciones) el 27/03/2017 08:43:54
Varias cosas:

- Cuando creas una tabla y campos para la misma, evita los espacios en blanco y los acentos, esto luego solo trae problemas. Cuando trabajes con los formularios, tendrás las etiquetas de los campos para ponerlo todo fotográficamente correcto. Tienes que diferenciar la nomenclatura interna para la base de datos y lo que verán los usuarios.

- Cuando insertas el campo nuevo, al que yo llamo txtNumeroValija, tienes dos partes, el campo y la etiqueta del campo. En la etiqueta puedes poner Número de Valija, como texto para ver, pero tienes que cambiarle el nombre al campo para que sea txtNumeroValija, en tu caso creo que es texto23.

- No puedes repetir el nombre de un campo o una etiqueta, pero el texto a mostrar de una etiqueta puede ser el mismo


- Tienes que eliminar el campo ID autonumerico, porque el código fallara si tienes un autonumerico en la tabla.


Por mi parte te recomiendo renombrar las tablas, para evitar espacios, y los campos, evitando espacios y acentos.


Renombra todo, elimina el campo ID y usa el código que te pase hace unos días para generar el falso autonumerico.


Puedes renombrar las tablas y campos y los orígenes de datos en el formulario se actualizarán, pero no los nombres de los campos, solo tendrías que ir campo por campo, en las propiedades, todas, arriba del todo y verás Nombre y Origen del Control, ponlos iguales una vez renombrados los campos en las tablas y listo o bien, renombra tablas y campos y crea el formulario de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad