No se puede asignar un valor a este objeto

Tengo el siguiente campo en un subformulario:

Y aquí podéis ver qué tipo de datos es:

Estoy intentado mostrarlo/ocultarlo, y que en ambos casos ponga el valor a cero, con el siguiente código:

Private Sub Form_Open(Cancel As Integer)
    If Me.ChkEsPorcentajeDeBenficioArticulo = -1 Then
        Me.TxtPorcentajeDeBeneficioArticulo.Visible = True
        Me.TxtPorcentajeDeBeneficioArticulo = "0"
        Forms.FPresupuestos.Recalc
    Else
        Me.TxtPorcentajeDeBeneficioArticulo.Visible = False
        Me.TxtPorcentajeDeBeneficioArticulo.Value = "0"
        Forms.FPresupuestos.Recalc
    End If
End Sub

Pero me salta este error:

¿Qué estoy haciendo mal?

2 respuestas

Respuesta
1

Lo único que veo raro es que le pases un valor de texto (="0") y no un número, ya que el campo es numérico (=0)

Muchas gracias, he corregido lo que tú has dicho, pero seguía dando fallo. Dándole vueltas, me he dado cuenta de que en el evento "Al hacer clic" del Checkbox no me daba error, y he probado a pasarlo de Form_Open a Form_Load y ya no da fallo. No sé si tendrá eso alguna explicación.

Sí tiene explicación, el evento "Al abrir" (open) se produce antes de que se carguen los controles en el formulario (que lo hace "al cargar"), por eso no le puedes asignar el valor al cuadro de texto (aún "no existe"). No me había fijado en qué evento estaba el código...

Respuesta
1

Item más. Si le vas a poner que tenga 0 decimales ¿para qué ponerlo doble? Ponlo byte, entero o entero largo

Muchas gracias, Julián. Llevas razón, lo revisaré. Siempre hay cosas que mejorar y aprender. Y yo con los tipos de datos siempre he sido de utilizar los mismos para no tener problemas, pero cada uno es para lo que es.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas