Access - contador con máscara de entrada

 
Vista:

contador con máscara de entrada

Publicado por Juan (5 intervenciones) el 16/11/2005 13:20:41
Hola buenas, como estais.

Tenía una duda,y era para ver si podríais ayudarme por favor. Os cuento.

Tengo una base de datos, en el cual tengo un campo clave con una máscara de entrada, el problema es puede resultar un poco incomodo para el usuario poner cada vez el número con la máscara. la pregunta es, ¿es posible poner un contador de forma que pasen los números de forma automatica?. La máscara que tengo es (2005)0001 y que vayan cambiando a (2005)0002, (2005)0003, etc...

Lo intenté con una consulta poniendo lo siguiente: Expr1: Ent([codigo])+1, pero con esto me aparece lo siguiente. 50001, 50002, 50003, etc..

Un saludo y gracias de antemano.
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:contador con máscara de entrada

Publicado por Enrique (1299 intervenciones) el 16/11/2005 15:56:49
Prueba a ver si te funciona de este modo:

Expr1: Izq([codigo];6) & Ent(Der([codigo];4))+1

Creo que debería ir bien.

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:contador con máscara de entrada

Publicado por Juan (5 intervenciones) el 16/11/2005 20:12:40
Gracias Enrique, voy a comprobarlo.

Un saludo.
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:contador con máscara de entrada

Publicado por Juan (5 intervenciones) el 17/11/2005 04:30:59
Hola, Buenas a todos.

La solución que me diste es buena Enrique, ahora el problema me viene por otro sitio, una vez cargo la consulta en el formulario, cuando doy a nuevo cliente, me elimina todos los campos para poder introducir los datos. Habría alguna posibilidad de dejar el campo codigo, actualizado con un numero más. ej. si tenemos el codigo (2005)0050, pulsamos el botón nuevo y se queda actualizado a (2005)0051.

Gracias de antemano,

Un saludo a todos.
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:contador con máscara de entrada

Publicado por Enrique (1299 intervenciones) el 17/11/2005 16:30:54
En ese caso elimina Expr1 de la consulta y hazlo todo por código desde
el formulario. En este ejemplo el campo Codigo se tiene que llamar igual
en la Tabla y en el Formulario y el Evento que usamos es "Al activar registro" de dicho formulario:

Private Sub Form_Current()
Dim UltCodigo As Variant, Numero As Integer
If Me.RecordsetClone.RecordCount = 0 Then
Me.Codigo = "(" & Format(Date, "yyyy") & ")" & "0001"
Exit Sub
End If
If Me.NewRecord And Me.RecordsetClone.RecordCount > 0 Then
UltCodigo = DMax("Codigo", "NombreTabla")
Numero = Val(Right(UltCodigo, 4)) + 1
Me.Codigo = Left(UltCodigo, 6) & Format(Numero, "0000")
End If
End Sub

Esto está probado y funciona, partiendo de una tabla vacia (sin
registros), el numerador empezará por: (2005)0001 y seguira con
los sucesivos.

Si tienes algun problema, me lo dices y te envío un ejemplo en una mdb real.

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:contador con máscara de entrada

Publicado por juan (5 intervenciones) el 17/11/2005 21:14:21
Perdona por no poder contestar antes Enrique. Muchas Gracias, funciona perfectamente. El unico error que me da es que pulse el botón que pulse (nuevo, guardar o borrar), añade un registro. Ya lo intento solucionar, y si eso ya te pediría la bd para ver como esta implementado.

Gracias otra vez.

Un saludo.
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:contador con máscara de entrada

Publicado por Enrique (1299 intervenciones) el 18/11/2005 15:17:04
Hola de nuevo:
Es lógico que ocurra eso, teniendo en cuenta que el Campo Código tiene
su origen del control en la Tabla o Consulta, al salir se guarda el registro activo con el Código aunque el resto de campos queden en blanco. Para solucionarlo te propongo dos opciones:
1-Poner un botón de comando en el formulario de nombre "Cancelar-Salir"
y en su Evento Click pones:

Private Sub Cancelar-Salir_Click()
DoCmd.RunCommand acCmdUndo
DoCmd.Close
End Sub

2-En el Evento al Cerrar (Form_Close), pones que si un determinado campo
del formulario que sea necesario, lo dejamos en blanco, deshaga el registro:

Private Sub Form_Close()
If IsNull(NombreCliente) Then
DoCmd.RunCommand acCmdUndo
End If
End Sub

Creo que alguna de las dos te podría valer.

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:contador con máscara de entrada

Publicado por Enrique (1299 intervenciones) el 18/11/2005 15:37:24
Recitifico pués en el Evento "Al Cerrar" no funciona, mejor pruébalo en el Evento "Antes de actualizar"

Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(NombreCliente) Then
DoCmd.RunCommand acCmdUndo
End If
End Sub

Aquí si va bién.

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

Publicado por juan (5 intervenciones) el 19/11/2005 02:51:15
Buenas a todos.

Muchas gracias Enrique, funciona todo a la perfección. Te lo agradezco.

Cuidate, hasta otra.

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