No cuenta registro en subformulario

Nuevamente os pido por si me podéis orientar, en lo siguiente. Tengo un formulario y dentro del mismo he insertado un subformulario. Dentro del formulario he insertado tres campos llamados txtTurismo, TxtMotocicleta y TxtCiclomotor. El subformulario lo utilizo para ir insertando datos, unos de los campos del subformulario es un cuadro combinado llamado (TIPO VEHICULO) con los siguientes valores: turismo, motocicleta y ciclomotor. En el campo TIPO VEHICULO del subformulario, he insertado la siguiente instrucción:

Private Sub TIPO_VEHICULO_AfterUpdate()

Forms!FAltas!txtTurismo = DCount("TIPO_VEHICULO", "TControl", "[TIPO VEHICULO] = 'Turismo'")

Forms!FAltas!txtMotocicleta = DCount("TIPO_VEHICULO", "TControl", "[TIPO VEHICULO] = 'Motocicleta'")

Forms!FAltas!txtCiclomotor = DCount("TIPO_VEHICULO", "TControl", "[TIPO VEHICULO] = 'Ciclomotor'")

End Sub

Lo que me sucede ahora es que cuando inserto el primer registro si por ejemplo pongo turismo no me sale la cantidad, y cuando paso al siguiente registro si inserto Ciclomotor anota el turismo.

Lo que pretendo hacer, es que cuando seleccione en el cuadro combinado turismo o motocicleta o ciclomotor, me salga la cantidad en el campo que le corresponda txtTurismo, TxtMotocicleta y TxtCiclomotor. Adjunto una imagen para que podáis ver mejor todo el rollo que he soltado. Un saludo.

3 respuestas

Respuesta
2

El código de Jacinto es acertado en al parte de referirse al formulario principal, pero al asignarle el valor 0 a los otros cuadros de texto, no te está realizando correctamente la suma de todos tus tipos de vehículos, que en definitiva es lo que pretendes..

Tendrás que modificar tu código para que quede así:

Private Sub TIPO_VEHICULO_AfterUpdate()
Me.Parent.txtTurismo = DCount("TIPO_VEHICULO", "TControl", "[TIPO VEHICULO] = 'Turismo'")
Me.Parent.txtMotocicleta = DCount("TIPO_VEHICULO", "TControl", "[TIPO VEHICULO] = 'Motocicleta'")
Me.Parent.txtCiclomotor = DCount("TIPO_VEHICULO", "TControl", "[TIPO VEHICULO] = 'Ciclomotor'")
End Sub

Además, si así aún no te hace la suma correctamente, habrás de guardar el registro, poniendo como primera linea esta:

DoCmd. RunCommand acCmdSaveRecord

Respuesta
1

Antonio: Según me parece ver los Texbox contadores están en el Formulario Principal.

Si éssto es así yo haría>>

Private Sub TIPO_VEHICULO_AfterUpdate()

Dim TipoVehiculo As String

TipoVehiculo = Me.TIPO_VEHICULO.Value

Select Case TipoVehiculo

       Case "Turismo"

              Me.Parent.TxtTurismo = DCount("TIPO_VEHICULO", "TControl", "[TIPO VEHICULO] = '" & Turismo & "'")

              Me.Parent.TxtMotocicleta = 0

               Me.TxtCiclomotor = 0

     Case "Motocicleta"

               Me.Parent.TxtTurismo = DCount("TIPO_VEHICULO", "TControl", "[TIPO VEHICULO] = '" & Motocicleta & "'")

              Me.Parent.TxtTurismo = 0

               Me.TxtCiclomotor = 0

      Case "Ciclomotor"

              Me.Parent.TxtTurismo = DCount("TIPO_VEHICULO", "TControl", "[TIPO VEHICULO] = '" & Ciclomotor & "'")

              Me.Parent.TxtTurismo = 0

               Me.TxtMotocicleta = 0

       Case Else

             MsgBox "Debe haber algún error",vbCritical,"NO EXISTE ESE VALOR"

End Select

End Sub

Prueba y me comentas porque lo he ido escribiendo sobre la marcha.

Mis saludos >> Jacinto

Sobre la marcha y con prisas es casi inevitable cometer errores.

Que yo haya visto hay dos de principiante por el Copia_Pega.

1.- Después de Case "Motocicleta"

Debe ser Me. Parent.TxtMotocicleta...

Y 2.- El mismo error en Case "Ciclomotor" que debe ser

Me. Parent.TxtCiclomotor...

En el supuesto de que los TextBox estén en el Formulario principal.

Espero te resulte adecuado. Saludos>> Jacinto

Respuesta
1

Las respuestas que te dan no son correctas, por que lo más seguro cuando seleccionas un texto del combo de lista si hay más de una columna, es posible que hayas asignado:

1;"Turismo";2;"Motocicleta";3;"Ciclomotor"

Lo anterior sería lo ideal, toda vez, que es mejor evaluar el contenido de un valor y no de un texto.

Revisa tu combo de lista haber y me informas como esta definido, con base en tú respuesta te envío el correctivo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas