Máscara complicada para número de factura

A [email protected],
Ante todo mucha gracias de antemano por vuestra colaboración. Tengo un problema que no puedo resolver (ni siquiera se si es factible). Veréis. Tengo que crear en Access un campo que automáticamente inserte la siguiente máscara:
"ABC+fechadegrabaciónderegistro+valor numérico de 1 a 9".
Donde ABC sería siempre fijo, fechadegrabaciónderegistro sería pues eso, la fecha en la que se graba el registro y el valor numérico es algo que se insertaría manual.
Por ejemplo, supongamos que el registro en cuestión lo creo a día de hoy, 21/06/11 y que es el primer registro que creo; el campo quedaría así:
ABC2106111
El segundo registro sería
ABC2106112
...
Sucesivamente.
1

1 Respuesta

272.990 pts. Access... ser o no ser. Esa es la cuestión
Lo que pides no se puede realizar a través de máscara. Sí se puede hacer si introduces los datos a través de un formulario.
Si todavía quieres saber cómo se hace (es un poquito "lioso") coméntamelo y te lo explico.
Hola! Una vez más, muchas gracias. Pues la verdad es que sí que estoy muy interesado en hacer este trámite, aun siendo a través de formulario... no me importa.
Lo dicho, muchísimas gracias por tu interés y por tu contestación.
Un saludo,
Te explico un poco de manera genérica cómo hacer lo que pides:
1.- Creas un formulario basado en la tabla que debe contener los datos.
2.- Supondré que el campo que debe contener la combinación de valores que comentas se llama [NFra]. Tú deberás cambiar ese nombre en el código que te indico más abajo por el que realmente tengas en tu BD
3.- En el formulario creas un cuadro de texto, donde introducirás el número del 1 al 9 que comentabas. A ese cuadro de texto le pones de nombre txtNum (Sacas las propiedades del cuadro de texto, te vas a la pestaña Otras->Nombre, y ahí le escribes txtNum).
4.- En esas mismas propiedades, pero en la pestaña Eventos, buscas el evento "Después de actualizar". Te sitúas en la parte blanca que hay a su derecha y te aparecerá un botón con puntos suspensivos. Haces click sobre él y te saldrá una ventana. Ahí le dices que quieres generar código.
5.- Se te abrirá el VBE, con dos líneas por defecto (Private Sub... y End Sub). Debes dejar estas dos líneas como te salen. En medio de ellas escribes el siguiente código:
---
Private Sub...
Dim vFijo as String
Dim vAhora as Date
Dim vDia, vMes, vAño as String
Dim vNum as String
Dim vFinal as String
'Asignamos los valores a las variables
vFijo = "ABC"
vAhora = Date
vNum = Me.txtNum.Value
'Sacamos los datos de la fecha y los convertimos al formato
'que queremos
vDia=Day(vAhora)
vMes=Month(vAhora)
vAño=Year(vAhora)
If Len(vDia) = 1 Then
vDia= "0" & vDia
End If
If Len(vMes) = 1 Then
vMes= "0" & vMes
End If
vAño = Right(vAño, 2)
'Construimos el valor final del campo
vFinal = vFijo & vDia & vMes & vAño & vNum
'Asignamos el valor al campo
Me.[NFra].Value = vFinal
End Sub
---
Ahora, en la línea que pone vFijo = "ABC" tú debes sustituir ABC por el valor que quieres que salga, y sólo debes recordar cambiar [NFra] por el nombre de tu campo (te lo he marcado en negrita).
Y eso es todo. Ahora, cuando escribas el número en txtNum y pulses Enter (o tabulación), automáticamente se te rellenará el valor del campo con el formato que querías.
Si tienes algún problema me comentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas