Incrementar un campo con valor texto

Es posible que en una base de datos de facturas al generar un nuevo registro me incremente el numero de factura en uno al registro anterior teniendo en cuenta que el campo es de tipo texto ya que hay facturas que solo tienen números y otras pueden contener letras.

1 respuesta

Respuesta
2

Si, aunque sea texto, tuviera al menos un número si se podría, pero dime ¿cómo le sumo 1 a BDC?

Buenas tardes Icue, por supuesto que todas contienen números, te pongo unos ejemplos:

FR-2018-952    |   A/2018/00045      |     TIE/11802365      |     12547822      |     292369-A/1 

FR-2018-953    |   A/2018/00046      |     TIE/11802366      |     12547823      |     292370-A/1 

FR-2018-954    |   A/2018/00047      |     TIE/11802367      |     12547824      |     292371-A/1 

FR-2018-955    |   A/2018/00048      |     TIE/11802368      |     12547825      |     292372-A/1 

FR-2018-956    |   A/2018/00049      |     TIE/11802369      |     12547826      |     292373-A/1 

Gracias de nuevo por dedicarme tu tiempo.

Javier, como no sé como está construida la tabla, te lo pongo para todos y luego, si quieres "individualizar" para cada Numfactura, sólo tienes que "recortar" su código. Además como no sé cuando quieres darle valor, lo he puesto en el evento Al recibir el enfoque del cuadro de texto NumFactura1.

Si tengo el formulario

Lógicamente, en el primer registro tendrás que poner el valor que sea, luego cuando "vayas" al segundo registro

Si me voy al siguiente

El código del evento Al recibir el enfoque del cuadro de texto Numfactura1 es

Private Sub NumFactura1_GotFocus()
If Me.CurrentRecord = 1 Then
NumFactura1 = ""
NumFactura2 = ""
NumFactura3 = ""
NumFactura4 = ""
NumFactura5 = ""
Else
NumFactura1 = Left(DLast("Numfactura1", "facturas"), 8) & "" & Format(Val(Right(DLast("numfactura1", "facturas"), 3)) + 1, "000")
NumFactura2 = Left(DLast("Numfactura2", "facturas"), 7) & "" & Format(Val(Right(DLast("numfactura2", "facturas"), 5)) + 1, "00000")
NumFactura3 = Left(DLast("Numfactura3", "facturas"), 4) & "" & Format(Val(Right(DLast("numfactura3", "facturas"), 8)) + 1, "00000000")
NumFactura4 = DLast("numfactura4", "facturas") + 1
NumFactura5 = Left(DLast("Numfactura5", "facturas"), 9) & "" & Val(Right(DLast("numfactura5", "facturas"), 1)) + 1
End If
End Sub

Hola de nuevo Icue, solamente hay un campo NumFactura, te he puesto varios ejemplos de los formatos que me puedo encontrar a la hora de introducir un numero, quiero decir con esto que no hay un formato estándar sino que me puedo encontrar con diferentes números, el evento lo pondría en un botón y al hacer click, ya que no siempre tiene por que ser correlativo, te pongo un ejemplo del formulario con los  los números de factura para que lo veas.

Imposible, de todo punto. Al menos yo no tengo ni idea de como puedes hacerlo y creo que nadie la va a tener, porque

- En el primer registro escribirías 232.

- Si va al siguiente te podría poner 233, que tendrías que borrar para escribir B 3997

- Si vas al siguiente te podría poner B 3998 que tendrías que borrar para escribir 130/18

- Si va al siguiente ¿cómo sabe el código que tiene que sumarle un 1 a las tres cifras de la izquierda y no a las de la derecha?

Y así sucesivamente. Joer, es que no hay dos iguales.

Lo único que se me ocurre, ya que al parecer son facturas de entrada, sería darle un número de factura particular correlativo de tu empresa y con ese número podrías localizar o referirte a la factura original.

Siento no poder ayudarte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas