Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Detectar modificaciones

Estas en el tema de Detectar modificaciones en el foro de Visual Basic clásico en Foros del Web. Necesito saber cómo puedo detectar que ha habido cambios en los registros de un formulario, para así poder preguntar al usuario si quiere salvarlos. Gracias...
  #1 (permalink)  
Antiguo 01/06/2008, 02:28
 
Fecha de Ingreso: marzo-2008
Mensajes: 127
Antigüedad: 16 años, 1 mes
Puntos: 1
Detectar modificaciones

Necesito saber cómo puedo detectar que ha habido cambios en los registros de un formulario, para así poder preguntar al usuario si quiere salvarlos.
Gracias
  #2 (permalink)  
Antiguo 01/06/2008, 03:09
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Detectar modificaciones

Cita:
Iniciado por Urko56 Ver Mensaje
Necesito saber cómo puedo detectar que ha habido cambios en los registros de un formulario, para así poder preguntar al usuario si quiere salvarlos.
Gracias
¿A qué te refieres con los registros de un formulario, están en algún control, base de datos..?

  #3 (permalink)  
Antiguo 01/06/2008, 12:17
 
Fecha de Ingreso: marzo-2008
Mensajes: 127
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Detectar modificaciones

Bueno, cada campo está en un control textbox. Se trata simplemente de un formulario de mantenimiento de clientes.
Si modifico un campo, como sé que así ha sido?
Gracias
  #4 (permalink)  
Antiguo 02/06/2008, 01:05
 
Fecha de Ingreso: enero-2008
Mensajes: 61
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Detectar modificaciones

Lo puedes hacer con el evento Change de los TextBox:

Private Sub Text1_Change()
Preguntar_guardar = True
End Sub

Asi ya sabes que se ha modificado algo, y por lo tanto puedes hacer:

Private Sub Form_Unload
If Preguntar_guardar = True Then
MsgBox "Desea guardar los cambios realizados?"
End If
End sub

Si la respuesta es que sí, ejecutas el codigo para guardar los datos.

Agur.
  #5 (permalink)  
Antiguo 02/06/2008, 09:04
 
Fecha de Ingreso: marzo-2008
Mensajes: 127
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Detectar modificaciones

Pues sí, esa es una opción válida, solo que debo crear el procedimiento "changed" para cada textbox.
Si trabajo con dataset, no existe algo más "global"?
Gracias Etxebe, tu respuesta me vale en cualquier caso.
  #6 (permalink)  
Antiguo 03/06/2008, 00:35
 
Fecha de Ingreso: enero-2008
Mensajes: 61
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Detectar modificaciones

Pues no conozco otra opcion mas "global", ya que soy bastante novato en esto.
Como dices, si tienes muchos textbox es un poco costoso...pero si no tienes otra opcion lo tendras que hacer asi (yo asi lo tengo en mi aplicacion).

Estare atento por si alguien te da otra solucion.

Hasta otra,

Agur.
  #7 (permalink)  
Antiguo 03/06/2008, 03:02
 
Fecha de Ingreso: marzo-2008
Mensajes: 127
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Detectar modificaciones

Bueno, de momento lo haré así. Si encuentro algo más ya lo pondré aquí.
Gracias de nuevo
  #8 (permalink)  
Antiguo 03/06/2008, 06:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Detectar modificaciones

Otra opción sería que el TextBox fuera una matriz de controles. Así, solo necesitarás programar el evento Change una vez...

Saludos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 04/06/2008, 00:13
 
Fecha de Ingreso: marzo-2008
Mensajes: 127
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Detectar modificaciones

VB 2005 permite las matrices de controles? Me suena haber leído que no. Tendré que estudiar esta posibilidad.
Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:33.