Valor del formulario a registro

Me pasa lo siguiente, tengo un combox (combox1) del formulario, en el cual introduzco el tiempo en formato 00:00 (mascara de entrada). Después en otro combox (combox2) aparece ese valor en formato decimal, por ejemplo, 01:15 pasa a 1,25 en el combox2.
No consigo que los valores decimales (combox2) se registren en la tabla a la que pertenece el formulario (Columna Tiempo), ya que en origen del control tengo puesta la fórmula para convertir a decimales.

1 Respuesta

Respuesta
1
Es normal que, así como lo tienes configurado, no te guarde el valor. Te explico cómo hacerlo, partiendo de unos supuestos:
- En la tabla tienes un campo que puede recoger los valores decimales (tipo número->Doble). Para la explicación yo llamaré a ese campo Tiempo, pero tú tienes que cambiarlo por el nombre que tenga dicho campo.
- Tomaré el nombre del combox1 y combox2 como el nombre del control, pero a veces la gente suele confundir el nombre con el titulo. Para saber el nombre de ese combox1/combox2 tienes que sacar sus propiedades, irte a la pestaña Otras y mirar qué pone en la propiedad Nombre. Ese es el valor que tú debes utilizar.
OK. El proceso es el siguiente:
1.- Abres el formulario en vista diseño, te vas a campos disponibles y le añades el campo Tiempo.
2.- Seleccionas el combox2, sacas sus propiedades y te vas a la pestaña Formato. Le pones el valor de la propiedad Visible en NO.
Así ese combo no se mostrará en la vista formulario, aunque estará ahí. Lo necesitamos para hacer de "puente" entre el valor del combox1 y Tiempo.
3.- Seleccionas el combox1, sacas sus propiedades y te vas a la pestaña Eventos. Seleccionas el evento "Después de actualizar", te pones sobre el espacio en blanco que hay a su derecha y verás que te aparece un pequeño botón con puntos suspensivos. Haces click sobre él y en la ventana que te sale le dices que quieres generar código. Se te abrirá la ventana del editor de VB.
4.- Ahí le escribes el siguiente código (en negrita lo que tienes que cambiar por lo que tút tengas en la BD):
---
Private Sub...
Dim vTiempo As Variant
    vTiempo = Me.combox2.Value
    If IsNull(vTiempo) Then Exit Sub
    Me.Tiempo.Value = vTiempo
End Sub
---
Y ya está. Ahora, cuando escribas un valor en el combox1 y le des al Enter o al tabulador, el campo Tiempo te mostrará el valor en decimal, y además te lo guardará en el registro correspondiente.
Espero que te funcione. Si tienes algún problema o duda me comentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas