Access - Problemas con Contador

 
Vista:

Problemas con Contador

Publicado por Marta (7 intervenciones) el 18/02/2008 18:23:31
Hola:
Tengo un problema con un contador que he diseñado en una tabla e insertado en un formulario.
Este contador es de tipo texto (puesto que incluye números y texto).
La cuestión es esta: el contador contiene números correlativos (1,2,3,4,5, etc) y cuando borro alguno de ellos (por ejemplo el número 5) el siguiente debería ser el 5 y no saltar al 6.
He visto que habeís dado solución a los contadores que son numéricos pero a los que son tipo texto no he encontrado solución alguna.

Por favor, si a alguién se le ocurre cómo solucionar este problema que me ayude.

Gracias.
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

RE:Problemas con Contador

Publicado por Enrique (1299 intervenciones) el 18/02/2008 19:31:38
Hola Marta:
Hay soluciones para todo en Access, pero tienes que darnos más detalles, por ejemplo ¿ que letra o letras deben incluir esos contadores además de los números ?, ¿ la letra o letras van antes o después de los números ?, ¿ las letras son siempre las mismas o van cambiando ? Si la letra o letras van cambiando tambien además de los números, ya sería más complicado de resolver (espero que no sea así). Otra cosa, en caso de producirse el borrado de un registro intermedio, ¿ quieres que se recupere ese contador o se pierda ?. Si el contador borrado es el último, es más fácil recuperarlo que si es uno intermedio.

Tambien habría que saber si el formulario es de tipo normal, contínuo o vista hoja datos y en qué Evento debe de producirse el incremento del contador, ¿ al pulsar un botón, al perder el enfoque el campo contador, al cambiar de registro, o como ???

Sea de la forma que sea, lo más probable es que haya que hacerlo con código VBA, utilizando Procedimientos de Evento ¿ tienes alguna idea de esto ?

Saludos
Enrique
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

RE:Problemas con Contador

Publicado por Marta (7 intervenciones) el 19/02/2008 09:10:46
Gracias por vuestras contestaciones.

Respondiendo a tus preguntas Enrique, te diré que el formato de mi contador es el siguiente: "001-2008-MP". Como verás lo que quiero que vaya correlativo es el 001,002,003, etc y lo demás dejarlo permanente (excepto el año que cambiará al año que viene).
El borrado de registros puede ser intermedio o el último.

Mi formulario es de tipo normal y el Evento de incrementar el registro lo he insertado al Activar Registro, introduciendo un código VBA.

¿Esto tiene alguna solución?

Gracias, por todo
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

RE:Problemas con Contador

Publicado por Enrique (1299 intervenciones) el 19/02/2008 09:57:07
Hola Marta:
Por supuesto que tiene solución, incluso se puede hacer que al cambiar de año, cambie la parte del contador que indica el año y el numerador comience de nuevo por 001, pero hay que trabájarselo mediante código VBA. Me parece que ya tengo algo hecho más o menos parecido, será cuestión de mirarlo y ver si puedo adaptarlo a tu caso, eso si, esta tarde, ahora no puedo.

Lo de recuperar registros intermedios borrados con este tipo de numerador, ya me parece más complicado, esto no te puedo asegurar que lo consiga hacer.

Por cierto, la parte del numerador que muestra el año ¿ como quieres que cambie, según una fecha previamente introducida o según el año en curso ???

Saludos y hasta luego.
Enrique
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

RE:Problemas con Contador

Publicado por Marta (7 intervenciones) el 19/02/2008 11:05:05
Gracias por tu respuesta Enrique.

Creo que no me he explicado bien, con el código VBA que he introducido creo que el año cambiará automáticamente al comenzar el año 2009. Mi problema está en los tres primeros dígitos 001,002,003, que son los que cuando borro un registro no siguen una relación correlativa.

Espero que tengas un milagro para solucionar esto.
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

RE:Problemas con Contador

Publicado por Enrique (1299 intervenciones) el 19/02/2008 13:58:34
Solucion hay, y sin milagros, pero entonces necesito saber cual es ese codigo que ahora tienes, para partir desde él.

Saludos
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

RE:Problemas con Contador

Publicado por Marta (7 intervenciones) el 20/02/2008 08:58:00
Para empezar gracias a todos por vuestra ayuda.

El código VBA que he insertado es el siguiente:

Private Sub Form_Current()
If Me.RecordsetClone.RecordCount = 0 Then
CONTADOR = "001" & "-" & Format(Date, "yyyy") & "-" & "GP"
ElseIf Me.RecordsetClone.RecordCount > 0 And IsNull(CONTADOR) Then
CONTADOR = Format(Left(DMax("CONTADOR", "GASTOS"), 3) + 1, "000") & "-" & Format(Date, "yyyy") & "-" & "GP"
End If
End Sub

Espero que esto sirva para solucionar mi problema.
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

RE:Problemas con Contador

Publicado por JOSELO (232 intervenciones) el 18/02/2008 19:44:35
El tema de los contadores conviene trabajarlos en forma númerico, para tu caso supongo que para eliminar el N° 6 no exites un N° 7.

Si es así avisame asi vamos avanzando
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

RE:Problemas con Contador

Publicado por Enrique (1299 intervenciones) el 18/02/2008 20:39:03
Lógicamente es más fácil si el campo contador es numérico, pero se puede hacer perfectamente un numerador con un campo de texto, es más, yo lo recomiendo porque si fuera necesario se le pueden poner ceros por la izquierda para que su longitud siempre sea la misma, cosa que no se puede hacer con campos numéricos.
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

RE:Problemas con Contador

Publicado por Victoria (1530 intervenciones) el 19/02/2008 11:26:30
Hola Marta:

Puedes hacer lo que quieres, RENUMERAR los registros sin problemas de la siguiente forma:

Haces una consulta de actualización A PARTIR del número borrado tomando:

Left(tuCampo;3) -1

¡Ojo!, tienes que partir del que has borrado, para lo cuál yo te recomendaría que ANTES del código de BORRADO, capturaras este Left(tuCampo;3) en, por ejemplo una variable, y DESPUÉS del borrado, ejecutaras la consulta de Actualización a partir de ahí

Parece que tienes resuelto el cambio de año y reinicializar a 001, pero, si no es así, me lo dices y te digo la forma exacta de realizarlo

Un saludo
Victoria
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