Calculo de campos en un subformulario

La pregunta es: que código puedo utilizar para desarrollar unos cálculos en un subformulario que tiene tres campos llamados "CantidaddeFolios", "FolioInicio" y "folioFinal".

Donde el usuario digitaliza una cantidad en el campo "Cantidaddefolio" y en el Campo "Folioinicio" de aparecer automáticamente El Numero de inicio de folio y en el campo "Foliofinal" debe aparecer con el folio que termina, y si el usuario ingresa nuevamente otro registro en el Campo "Cantidaddefolio" en el campo "FolioInicio" debe arrancar a partir del resultado que esta en el campo "folioFinal".

Acá hay un ejemplo de lo que tiene que cumplir

2

2 respuestas

Respuesta
1

Pedro: Si realmente el Cuadro de texto se llama FolioFinal entonces >>

En el evento AfterUpdate de FolioInicio, pones:

Me.FolioFinal = Nz(Me.CantidadDeFolio;0)+Nz(Me.FolioInicio;0)

Mis saludos >> Jacinto

hola  jacinto

gracias por tu respuesta 

mi pregunta este mismo código me sirve para los campos "FolioInicio" y "FolioFinal"

Pedro: Releyendo tu Pregunta creo interpretar que solo quieres poner la CantFolios y que el resto se rellene solo.

Y mi pregunta es: ¿El numero 1 También quieres generarlo si la Tabla está vacía?

Mis saludos >> Jacinto

hola jacinto

si eso lo que se quiere que el usuario ingrese en el campo "CantidaddeFolios" y en los campos de "FolioInicio" y "folioFinal". sean automatico.

la idea es que si el usuario ingreso el numero "10" en el campo "CantidaddeFolios" en el Campo "FolioInicio" aparezca el numero "1" y el el campo "folioFinal" aparezca el numero "10" y ademas cuando el usuario por ejemplo ingrese otro registro como el numero "20" en el campo "CantidaddeFolios" en el campo "FolioInicio" aparezaca "11" y en el campo "folioFinal" aparezca "30" 

en la gráfica esta un ejemplo

respecto a la pregunta no se debería generar nada por que el campo "CantidaddeFolios" se encuentra vació

gracias por su valiosa colaboración

Pedro: Justo acabo de abrir la pregunta para contestarte y he visto que Sveinbjor también ha respondido y mirando el código sin probarlo creo que te irá perfecto.

Si tienes dificultades las comentas y aquí estamos. Saludos >> Jacinto

Respuesta
1

En el evento "Después de actualizar" de tu campo "Cantidad de folios", le generas este código:

Private Sub Cantidad_AfterUpdate()

If Nz(Me.Cantidad,0)<=0 Then

Msgbox "Cantidad de folios errónea", vbInformation

Me.Cantidad=Empty

Else

Me.FolioInicial=Nz(DMax("FolioFinal","TuTabla"),0)+1

Me.FolioFinal=Me.FolioInicial+Me.Cantidad

End If

End Sub

No lo comprobé, pero creo que es correcto. Renombre con los nombre de tus campos y tu tabla.

Un saludo.


Un nuevo foro de access, visítanos: http://nksvaccessolutions.com/Foro/ 

Hola

Gracias por tu respuesta

Te cuento que funciona para cuando se ingresa el primer registro, pero cuando ingreso un segundo registro el campo de "CantidaddeFolios" en el "FolioInicio" debería iniciar en el siguiente numero que se encuentra en el campo "folioFinal". Cuando se ingreso el primer registro y en campo "folioFinal". Debería estar el numero de folio final e la cantidad de folios.

Te envío un ejemplo con imágenes

Gracias por su respuesta

Hola Sveinbjorn El Rojo

solicito tu ayuda también con la siguiente dificultad 

Tengo un sub formulario llamado FrmTblHControl y este a su vez tiene un campo llamado FECHA y tengo otro campo llamado REVISIÓN. La tarea que debe cumplir el campo REVISIÓN es comparar cada uno de los registros del campo FECHA del sub formulario, quiero decir que en el campo REVISIÓN debe comparar la fecha que se ingreso como primer registro con el segundo registro que se ingreso al campo FECHA y dejar un mensaje en el campo de REVISIÓN y asi sucesivamente con cada uno de los registro del campo FECHA.

La comparación consiste es que si en la FECHA es por ejemplo "01/01/2016" y el registro que le sigue en el mismo campo FECHA es por ejemplo "02/01/2016" osea es mayor que la fecha anterior y el resultado de la comparación en el campo REVISIÓN es un MsgBox= "BIEN" de lo contrario "ERROR"

Pues es tan sencillo como restarle una unidad al cálculo del folio final.

Private Sub CantidaddeFolios_AfterUpdate()
If Nz(Me.CantidaddeFolios, 0) <= 0 Then
MsgBox "Cantidad de folios errónea", vbInformation
Me.CantidaddeFolios = Empty
Else
Me.FolioInicial = Nz(DMax("FolioFinal", "TDatos"), 0) + 1
Me.FolioFinal = Me.FolioInicial + Me.CantidaddeFolios - 1
End If
End Sub

La otra pregunta no tiene nada que ver con ésta, por lo que aquí no te la contesto. Abre una nueva para eso.

Hola

Si de acuerdo funciona para ese registro mi pregunta es:

Cuando ingreso un segundo registro en ese mismo subformulario no toma el valor del campo "folioFinal" te envío las fotografías del ejemplo revísalas gracias

att PEDRO ROJAS

No entiendo que sigas diciendo que no te funciona, yo probé los dos códigos y empiezan en el siguiente al último registrado, como pones en las imágenes.

El primero que te propuse tenía el fallo que acababa en un folio más, pero el segundo funciona perfectamente: http://www.filebig.net/files/pPye3m3gyw

hola 

gracias por sus valiosas respuestas me ayudaron mucho.

Para eso estamos.

Un saludo.


Un nuevo foro de access, visítanos: http://nksvaccessolutions.com/Foro/ 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas