Evitar que una variable modifique su valor introducido "a mano"

Tengo un cuadro de texto que recoge la fecha actual y lo asigna a una variable para tomarla en un momento dado y aplicarla a otro registro. Sin embargo, hay ocasiones en que esa fecha se modifica "a mano" para que no sea la actual, con lo que variable recoge ese valor. Sin embargo, cuando salgo de ese formulario para, por ejemplo, hacer una consulta, me encuentro al regresar que la fecha "a mano" ha sido sustituida por la fecha actual. ¿Cómo puedo "decir" a ese cuadro de texto o variable que sólo debe tomar la fecha actual al iniciar Access, pero no que no modifique su valor si ha sido introducido a mano?

Respuesta
2

¿Me puedes ilustrar como haces para tomar la fecha del objeto de fecha?

Hola Eduardo! Gracias por contestar.

Pues verás. Utilizo un cuadro de texto que refleja la fecha en que se ha realizado un trabajo (fecharevisado). Diversos botones de comando actualizan esa fecha al hacer clic sobre ellos, así que éstos tienen el siguiente evento:

Private Sub cmdRevisado_Click()

Dim coge_fecha As Variant

coge_fecha = dias_a_sumar

Me.fecharevisado = Date + fecha_hoy_suma_dias

Me.Cuadro_combinado73.SetFocus
End Sub

Hay otro cuadro de texto (dias_a_sumar) que tiene el valor por defecto de 0 y asigno ese valor a la variable coge_fecha. Así, cuando se hace clic en alguno de los botones que refería, el cuadro fecharevisado actualiza a la fecha de hoy (Date) sumándole los días adicionales que haya almacenado en coge_fecha. Como normalmente, como decía, acostumbra a tener el valor de 0, la fecha que se actualiza siempre es la actual, pero hay ocasiones en que se trabaja a uno, dos o cinco días después de hoy, de forma que si en el cuadro de texto dias_a_sumar hemos introducido un 2, por ejemplo, la fecha que actualizará será la pasado mañana. Me explico?

Lo que me ocurre es que ese valor prefijado a 0  no queda fijo cuando es modificado a 1, ó 2, ó 5, ya que si salgo de ese formulario para trabajar en otro, al regresar ese valor ha vuelto a 0 en lugar de mantener el 1, 2 ó el 5.

Espero haber sido más claro. En caso contrario, por favor, indícamelo y trato aclarar aspectos.

Un saludo

Si necesito más pistas, por que estoy conjeturando tu programa.

Entiendo que tienes una celda que el usuario poner cuantos dias se le suman a la fecha de hoy.

Ahora al irse de ese formulario, ¿tu guardas esos datos?, si lo haces, ¿dónde y como lo haces?

.

Supongo que hablamos de VB.NET y por eso te dejo un link de como comunicar los Formularios, eso también te ayudará a guardar datos que se pueden perder.

http://ltuttini.blogspot.com/2009/09/c-comunicar-formularios-de-forma.html 

.

Este ejemplo está en C# pero hay como traducirlo.

.

También otra forma es guardar los datos en variables Settings.

.

Me dices como seguimos.

.

Pues no; ese dato no se guarda.

Como resulta que no conozco el VB.NET, supongo que sería mejor una solución con variables.

Gracias y un saludo.

En tu Proyecto, agrega un nuevo archivo SETTINGS.

.

Abres el archivo generado y agregas una nueva variable y su tipo.

.

Luego la usas en cualquier formulario, tanto para escribirlo como para leerlo.

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Settings1.Default.VariableX = "Algo que guardo"
        TextBox1.Text = Settings1.Default.VariableX
End Sub

Estas variables pueden ser guardadas en cualquier formulario y leidas o modificadas en cualquier otro, incluso en clases.

.

Si tienes dudas me lo haces saber.

.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas