Auto numérico en formulario access

Tengo el siguiente código:

Private Sub TipoComprobante_Change()
If TipoComprobante = 1 Then
    Me.NroComprobante = Nz(DMax(NroComprobante, "OperacionIngEgrUno", 0) + 1)
ElseIf TipoComprobante = 2 Or TipoComprobante = 3 Then
    Me.NroComprobante = Nz(DMax(NroComprobante, "OperacionIngEgrUno", 0) + 1)
End If
End Sub

Quisiera lograr que al pasar a un Nuevo Registro desde el formulario y al seleccionar de un Cuadro Combinado llamado "TipoComprobante" (INGRESO, EGRESO o DEVOLUCIÓN) en el control "NumeroComprobante" se incremente el valor del registro anterior en 1. El control TipoComprobante fué hecho con el asistente al crear la tabla y tiene como origen de dato otra tabla, si bien es cierto,  el combo se muestra el concepto en la tabla se almacena el número del ID asociado (1=INGRESO, 2=EGRESO, 3=DEVOLUCIÓN). Cuándo selecciono una alternativa del combo "TipoComprobante" en el control "NúmeroComprobante" no ocurre nada. Esta pregunta la hice una vez y me respondieron, que verguenza estoy preguntando lo mismo nuevamente. Saludos mil a todos.... Muchas gracias necesito luces.... Waldo desde Chile.

3 respuestas

Respuesta

¿Has probado a usar el evento Después de actualizar?

¿Puedes poner una imagen?

¡Gracias! .... El evento Después de actualizar no, pero probé el evento Antes de actualizar

Waldo, me pasa lo mismo que a Enrique. No entiendo que diferencia hay entre que elijas, 1 ó 2 ó 3

Me explico, vamos a suponer que en el primer registro, seleccionas Ingreso, y en Nro Comprobante hay un 1. En el siguiente registro si vuelves a seleccionar Ingreso, en NroComprobante te pondría un 2, pero el 2 equivaldría a un egreso.

Si lo que de verdad importa es que vayan correlativos, sin tener en cuenta si son ingresos, egresos, etc. bastaría con poner en el evento Después de actualizar del combinado

nrocomprobante=Nz(dmax("nrocomprobante","OperacionIngEgrUno"))+1


                    
Respuesta

Waldo como tiene mi WhatsApp podemos hablar al respecto. Aunque también me inclino en que este no es el evento a utilizar.

¡Hola muchas gracias......!

Waldo creo que esto lo habíamos revisado, pruebe con esto

Private Sub TipoComprobante_Change()
If TipoComprobante = 1 Then
    Me.NroComprobante = Nz(DMax(NroComprobante, "OperacionIngEgrUno", "idcomprobante=1", 0) + 1)
ElseIf TipoComprobante = 2 Or TipoComprobante = 3 Then
    Me.NroComprobante = Nz(DMax(NroComprobante, "OperacionIngEgrUno", "idcomprobante>1", 0) + 1)
End If
End Sub

Hola Eduardo muchas gracias por tu respuesta, efectivamente lo habíamos visto, pero perdí la huella al código y me lie con este código (de ahí mi vergüenza) probaré tus indicaciones y si resuelvo el problema publico la solución. Todo esto ha sido un combate para mí. Saludos mil a ti y toda la comunidad. Muchas gracias...

Respuesta

Si lo publicado es fiel, me surge una duda:

¿Qué diferencia hay si el dato es 1 o 2 o 3?

En todos los casos el incremento hace exactamente lo mismo y si no se llega a guardar el registro, el numero calculado no se guardará en la tabla 'OperacionIngEgrUno'.

¡Gracias! por responder, la idea es ingresar desde un único formulario los registros de Ingresos, egresos y devoluciones y pasarlos a la tabla "OperacionIngEgrUno. En donde quiero manejar dos correlativos ascendente.... un correlativo ascendente para los "ingresos" y el otro correlativo ascendente para los "egresos y devoluciones".  Ejemplo: ingreso 1, ingreso 2, ingreso 3....; y el otro correlativo tiene la siguiente lógica: egreso 1, egreso 2, devolución 3, egreso 4, devolución 5, es decir. en la tabla "OpercionIngEgrUno" se verian así los datos entre otros:

TipoComprobante    NroComprobante         Monto

Ingreso                                   1                       100.000

Ingreso                                   2                       200.000

Egreso                                    1                         20.000

Egreso                                    2                         20.000

Devolución                            3                          10.000

Egreso                                   4                          20.000

Ingreso                                  3                        50.0000

Nota: esta tabla permitirá hacer una consulta de selección con campos calculados para obtener los "cargos", "Abonos" y el "Saldo Acumulado" de una cuenta corriente bancaria.

Saludos cordiales.....

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas