¿Recibe mensajes de «Recurso del sistema excedido»? Aquí hay una manera de arreglarlo

Mensaje de error de recursos del sistema excedido

Últimamente hemos visto un bombardeo de clientes que obtienen «Recursos del sistema excedidos» cuando migran a Windows 10, a pesar de que el sistema funcionó bien en versiones anteriores de Windows. En algunos casos, hemos rastreado el problema a las aplicaciones que usan muchos subformularios en un control de pestaña, por lo que voy a describir una técnica que evitará el problema en aquellos casos en que cada pestaña alberga un subformulario.

Crear pestañas para un magnífico UI – Hasta acabarse los recuerdos

El otro día estaba trabajando con la aplicación de un cliente que tenía tres niveles de pestaña: pestañas dentro de pestañas,de las cuales todas se cargaban con subformularios cada vez que se abría el formulario. La aplicación funcionó bien en Windows 7, pero causó mensajes de error «Se han excedido los recursos del sistema» en Windows 10. La solución es cargar solo el subformulario cuando el usuario hace clic en la pestaña y descargar el subformulario cuando hacen clic en otra pestaña.

 

 

 

 

 

 

 

 

Revisión de código

La magia ocurre en el evento Cambiar de pestaña, que ocurre cuando el usuario hace clic en cada pestaña del control. En el ejemplo de código anterior, solo me interesan las pestañas que tienen subformularios, en este caso tres pestañas. (La técnica es inútil para pestañas sin subformularios).

El objeto estático LastSubForm, (línea 10), realiza un seguimiento del último subformulario utilizado y establece su valor de SourceObject en nulo en la línea 16. Esto vaciará de la memoria el formulario de la pestaña anterior manteniendo el uso de memoria al mínimo cuando el usuario se cambia a otra pestaña.

La instrucción select en la línea 22 se usa para identificar en qué pestaña se hizo clic, luego establece el objeto LastSubForm en el subformulario contenido en la pestaña y finalmente establece el SourceObject del subformulario en la línea 28. Hacerlo cargará inmediatamente el subformulario en la memoria. El proceso se repite para las otras dos pestañas del control con subformularios.

Tenga en cuenta

Para minimizar el uso de memoria, debe establecer la propiedad SourceObject de cada pestaña en una cadena vacía en la vista de diseño; de lo contrario, se cargarán todos los subformularios, lo que anula el propósito de la técnica.

La primera pestaña de su control debería cargarse, ya que es lo que verán sus usuarios cuando abran su formulario.

Simplemente agregue más declaraciones select según sea necesario si necesita usar esta técnica con más pestañas, particulamente la he usado para un control de pestañas que tenía 8 pestañas.

Si tiene pestañas anidadas, deberá repetir el enfoque para cada control de pestañas.

Si sus nombres de subformulario son los mismos que su propiedad SourceObject, puede optimizar aún más el código utilizando una variable de cadena en el código.

 

Publicado en Access Help, Uncategorized, VBA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

 

Quienes Somos

ExpertosMicrosoftAccess.com es un servicio de la empresa IT Impact, Inc., una compañía de programación y servicios para empresas en Latino América. Ofrecemos servicios en .Net, SQL Server y Microsoft Access. Muchos de nuestros desarrolladores han obtenido el galardón de Access MVP, un título proveído por Microsoft a aquellos que han hecho aportes a la comunidad y que han demostrado tener conocimientos superiores del producto.

Nuestro Equipo

  • Le ayudamos a "Descubrir el poder de sus datos™" con reportes y sistemas de Access excepcionales .
  • Creamos soluciones de bases de datos personalizadas utilizando Microsoft Access y / o SQL Server.
  • Nuestros consultores ganaron sus estrellas en las empresas de servicios y/o manufactura antes de convertirse en programadores.

Blogs anteriores