Access - Es extraño que no funcione

 
Vista:

Es extraño que no funcione

Publicado por JuanM (20 intervenciones) el 10/04/2007 17:31:09
Buen Día,

Tengo el siguiente inconveniente en varios formularios los cuales hacen un ingreso de datos a tablas diferentes cada uno, lo estraño es que al dar clic en el botón de Ingreso de datos hace la captura los valores respectivos en variables, hace las operaciones correspondientes, hace la insercion en la tabla (DoCmd.RunSQL "INSERT INTO ....), pero quiero que este botón se deshabilite al realizar lo anterior y no lo hace, mientras que lo demás sí lo hace y lo hace bien, he probado deshabilitarlo de las siguientes maneras pero ninguna surte efecto:
Me.InsertaMArticulos.Enabled = False
Forms!frmInsertaMaestraArticulos!InsertaMArticulos.Enabled = False
Formularios!frmInsertaMaestraArticulos!InsertaMArticulos.Enabled = False

Algo anda mal con estas instrucciones, ni siquiera tratando de hacerlo en una Function en lugar de en un Sub funciona; he comentariado todo el resto del código para descartar cualquier cosa, pero me doy cuenta que el problema es esta instrucción, he intentado hacerlo creando otro botón pero tampoco sirve.

Alguno de ustedes tiene idea de qué será lo que pasa acá?. Como dato curioso, esta instruccion si funciona en otro formulario, pero en los demas no
Me.objeto.Enabled = False

Agradezco cualquier luz que me den para resolver este inconveniente, muchas gracias!!!

Juan Miguel
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Es extraño que no funcione

Publicado por Enrique (1299 intervenciones) el 10/04/2007 18:46:56
Hola JuanM:
Sin entrar en más detalles, lo que si puedo decirte con seguridad es que un Control (Botón, Cuadro de Texto, Combo, etc.) NO es posible deshabilitarlo ni hacerlo Invisible mientras tenga el Foco, o sea que para deshabilitarlo primero hay que enviar el Foco a otro control y después ejecutar la instrucción que lo deshabilita.

Me.NombreOtroControl.SetFocus
Me.InsertaMArticulos.Enabled = False (o .Visible = False)

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Es extraño que no funcione

Publicado por JuanM (20 intervenciones) el 10/04/2007 19:09:18
Muchas gracias Enrique, eso era lo que faltaba hacer para que funcionara; pero quiero preguntar algo más: Bueno, primero tengo que decir que no había intentado hacer esto porque, si no estoy mal, en algunas ocacionesaccess me decía que no se podían realizar operaciones sobre el objeto si este no poseía el foco, es decir, que esto sucede para unos objetos y para otros no??, pregunto porque esto también me sucede al tratar de limpiar algunos campos despues de hacer clic en un botón.

Nuevamente gracias!!

Juan Miguel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Es extraño que no funcione

Publicado por Enrique (1299 intervenciones) el 10/04/2007 20:17:01
El error que indicas es el 2185 en tiempo de ejecución y se produce cuando a un control le ponemos la propiedad Text de esta forma:
Me.Campo.Text = "Lo que sea"
porque cuando un control tiene esa propiedad solo podemos ejecutar cualquier acción sobre él cuando tiene el Enfoque y no lo pierde, ya que si tratamos de hacerlo al pulsar un botón de comando, lo pierde y salta el error. En la mayoría de los casos no es necesario usar la propiedad Text y mucho menos en VBA de Access (en Visual Basic si se usa con más frecuencia) por lo cual, quitándole el Text desaparece el error.
En cuanto a tu pregunta concreta:
"esto sucede para unos objetos y para otros no??", pués depende de si tienen la propiedad Text o no la tienen, pero para deshabilitarlos es necesario que no tengan el Foco, creo que son dos cosas distintas.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Es extraño que no funcione

Publicado por JuanM (20 intervenciones) el 10/04/2007 20:26:27
Gracias Enrique,

Que cosas!!!, fijate que no sabia que no era necesario utilizar la propiedad Text en VBA de Access ni mucho menos que esto era lo que producía el error, bueno, quedo claro con tu explicación, aprendí mucho hoy contigo, gracias nuevamente.

Saludos!!

Juan Miguel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Es extraño que no funcione

Publicado por Enrique (1299 intervenciones) el 10/04/2007 21:14:07
Bueno, lo que digo es que muchas veces se usa sin ser necesario, pero hay algunas que si. Concretamente en un ejemplo que puse hace poco en este Foro sobre un Formulario de búsquedas, la uso en el Evento Change de un cuadro de texto para que en un Cuadro de Lista vayan apareciendo los nombres buscados a medida que se escriben palabras coincidentes. Ahí si se hacía necesaria esa propiedad porque probé a quitarla y dejaba de funcionar. Aunque ya digo que son casos contados.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar