Mira este ejemplo que utilizo antes de guargar, como mis textbox, combo, etc los tengo en clase, en ellos creo un propiedad llamada °validar_mensajes° y en mi clse form un metodo llamado °validar_campo_emblanco°, mas abajo veras el codigo del metodo
IF thisform.validar_campo_emblanco() = .t. && verifica si hay campo en blanco
**************************************************
*Elaborado por Edwin Duran
*República Dominicana
* ejecución = thisform.validar_campo_emblanco()
* validar_mensajes = Esta Propiedad debe crearse en la clase textbox, combobox, etc., se coloca .T. para que realice la validación
*ultima modificacion 13-12-08
************************************************
Local SALIR_FOR
SALIR_FOR = .T.
For I = 1 To Thisform.ControlCount
If SALIR_FOR = .F.
Exit
Endif
If Pemstatus(Thisform.Controls[I], "validar_mensajes",5)
If Empty(Thisform.Controls[I].Value) And Thisform.Controls[I].validar_mensajes = .T.
Messagebox("Informacion no completada "+Thisform.Controls[I].Name,16,"AVISO")
Thisform.Controls[I].SetFocus
SALIR_FOR = .F.
Exit
Endif
Endif
If Thisform.Controls[I].BaseClass $ "Container" && Determina si el control es un container
For J = 1 To Thisform.Controls[I].ControlCount && PARA CALCULAR CUANTOS objetos EXISTEN
If Pemstatus(Thisform.Controls[I].Controls[j],"validar_mensajes",5)
If Empty(Thisform.Controls[I].Controls[j].Value) And Thisform.Controls[I].Controls[j].validar_mensajes = .T.
Messagebox("Informacion no completada "+Thisform.Controls[I].Controls[j].Name,16,"AVISO")
Thisform.Controls[I].Controls[j].SetFocus
SALIR_FOR = .F.
Exit
Endif
Endif
Next J
Endif
If Thisform.Controls[I].BaseClass $ "Pageframe" && Determina si el control es un pageframe
For J = 1 To Thisform.Controls[I].PageCount && PARA CALCULAR CUANTOS PAGE EXISTEN
For K = 1 To Thisform.Controls[I].Pages[J].ControlCount && PARA DETERMINAR CUANTOS OBJETOS TIENE LA PAGINA
If Pemstatus(Thisform.Controls[I].Pages[J].Controls[K],"validar_mensajes",5)
If Empty(Thisform.Controls[I].Pages[J].Controls[K].Value) And Thisform.Controls[I].Pages[J].Controls[K].validar_mensajes = .T.
Messagebox("Informacion no completada "+Thisform.Controls[I].Pages[J].Controls[K].Name,16,"AVISO")
Thisform.Controls[I].Pages[J].SetFocus
Thisform.Controls[I].Pages[J].Controls[K].SetFocus
SALIR_FOR = .F.
Exit
Endif
Endif
If Thisform.Controls[I].Pages[J].Controls[K].BaseClass $ "Container" && Determina si el control es un container
For L = 1 To Thisform.Controls[I].Pages[J].Controls[K].ControlCount && PARA DETERMINAR CUANTOS OBJETOS TIENE
If Pemstatus(Thisform.Controls[I].Pages[J].Controls[K].Controls[L],"validar_mensajes",5)
If Empty(Thisform.Controls[I].Pages[J].Controls[K].Controls[L].Value) And Thisform.Controls[I].Pages[J].Controls[K].Controls[L].validar_mensajes = .T.
Messagebox("Informacion no completada "+Thisform.Controls[I].Pages[J].Controls[K].Controls[L].Name,16,"AVISO")
Thisform.Controls[I].Pages[J].SetFocus
Thisform.Controls[I].Pages[J].Controls[K].Controls[L].SetFocus
SALIR_FOR = .F.
Exit
Endif
Endif
Next J
Endif
If SALIR_FOR = .F.
Exit
Endif
Endfor
If SALIR_FOR = .F.
Exit
Endif
Endfor
If SALIR_FOR = .F.
Exit
Endif
Endif
Endfor
Thisform.Refresh
Return SALIR_FOR