Gracias por ayudarme vía correo con el problemilla anterior. Ahora se me presenta la duda de como puedo hacer un campo obligatorio en un formulario de manera que si voy a escribir algo en los demás campos me salga un mensaje diciéndome que el campo POR es obligatorio.
1 Respuesta
Respuesta de telemaco
1
1
telemaco, He trabajado 5 años desarrollando aplicaciones tanto en access...
El problema es LA CANTIDAD DE CAMPOS QUE HAY... ya que tendría en cada uno dfe ellos validar si no es nulo el primero... la mejor idea que te puedo dar... es que Bloquees los campos menos el obligatorio, propiedad Bloqueado o Locked en la ficah datos de las propiedades de las cajas o combos)... ahora en el evento AfterUpdate (después de actualizar) de la caja obligada colocas... *************************** If Not Isnull(TxtCajaObligada) then TxtCaj1.Locked = False TxtCaj2.Locked = False else TxtCaj1.Locked = False TxtCaj2.Locked = False end if ************************ TxtCajaObligada es la caja que quieres que debe tener dato, txtCaj1 y 2, son las cajas que deberás bloquear... es más puedes limpiarlas en tal caso que tengan datos (txtCaj1 = Null) Lógicamente cambiaras los nombres según como llamaste tus cajas... y colocaras las que hacen falta, si son muchas te aconsejo que cambies TxtCaj1.Locked = False TxtCaj2.Locked = False Por: ********************* For Each ctl In Me.Controls If TypeOf Ctl Is TextBox then If Ctl.Name <> TxtCajaObligada then Ctl.Locked = False end If End if Next Ctl ******************* Aquí recorres todos los controles y los que son casjas de texto y NO SE LLAMAN TxtCajaObligada, los bloquearas o desbloqueaaras... ¿Por qué DEBEN ESTAR BLOQUEADAS LAS CAJAS AL ABRIR, porque no siempre estarás en la caja obligada, que tal que te pares en otra que no sea la obligada y cambies un dato mientras que la obligada esta vacía? Por que la otra seria que en el evento al salir (Exit) coloque estos, este evento tiene un parámetro cancel, que nos servirá para cancelar el evento y que se devuelva... ************************* If IsNull(TxtCajaObligada) then msgbox "Debe ingresar algun dato",VbInformation,"error" Cancel = True end If ************************* Bueno te dejo 2 opciones verifica cual es la que más te sirve Att:telemaco