La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1168 - OPTIMIZACION DE ACCES
Autor:  Juan Alava Salillas
Tengo un aplicacion realizada en Access, lo que ocurre es que solo la parte de programas, formularios, informes, etc... ocupa 8 megas y cuando quiero modificar algo se me bloquea el ordenador o me dice memoria insuficiente, el ordenador que tengo es un pentium III 500 Mhz con 128 mb de ram. Hay alguna forma de optimizar o dividir la apliaciones en mas partes para que no ocurra esto.

  Respuesta:  Noris Falcon
Hola Juan la unica forma que conozco es aumentando la memoria a tu maquina al doble.

Si tuvieras la aplicacion como cliente servidor si puedes dividir la aplicacion, pero creo este no es tu caso. En el ayudante de oficce una vez iniciado el access, preguntale al ayudante sobre la opcion dividir base de datos. ahi encontraras muchas respuestas... Suerte.

  Respuesta:  JORGE IBARRA FEREZ
Hola Juan :
El error que te manda, es porque las tablas estan mal hechas, lo mas probable es que tengas muchas campos dentro de una misma tabla, esto no es problema hasta cuando haces los formularios, no es asi.
Para solucionar esto debes crear y planificar mejor el orden de tus datos, por ejemplo realizando tablas relacionales.
Te aconsejo que busques un manual aqui en la web del programador.
si tienes dudas solo comunicate conmigo.
Buena Suerte

  Respuesta:  Pere Escobar Solsona
El tamaño es debido a que debes tener muchas imágenes (incrustadas) en los formularios e informes. Prueba a incluir una imagen .WMF de unos 500 Kb (relativamente compleja) en 15 formularios o informes y verás cómo la base de datos se te dispara hasta los 50 Mb; Access 2000 puede trabajar con cualquier tipo de archivo gráfico que reconozca tu PC, pero los guarda como mapa de bits si la imagen está incrustada. La solución pasa por vincular las imágenes en lugar de incrustarlas (se puede modificar la propiedad Tipo de imagen desde las propiedades de cada objeto Imagen); sin embargo, puede que al vincular las imágenes te surjan problemas al imprimir el informe o formulario que las contiene.

Saludos,

Pere

P.D.: Si quieres comunicarte conmigo por E-Mail por cualquier aclaración, quita el NOSPAM de mi dirección.

  Respuesta:  Pere Escobar Solsona
Se me olvidaba la solución a la falta de memoria. A parte de ser un fallo de Access 2000 que se soluciona (teóricamente) con la SR-1, puede tratarse de un error de código al asignar objetos con SET; aunque teóricamente se descargan todas las variables y objetos cuando finaliza el módulo que las utiliza, el propio VB tiene una constante para asegurarse que se ha liberado la memoria utilizada por un objeto: Nothing.

Así pues, si se define, por ejemplo, un objeto Database y se le hace una asignación (SET Basedatos=Currentdb), pero después no se le anula esa asignación, ese objeto sigue ocupando memoria; si sólo se utiliza esto una vez no pasa nada, pero si abrimos 100 veces un mismo formulario que haga esa asignación cada vez que se abre, ya podemos tener un buen PC porque es como tener 100 veces abierta la base de datos.

Para solucionar esto se debe liberar esa asignación al final del procedimiento o en el momento de no tener que utilizar más el objeto (SET Basedatos=Nothing). Si el código está probado y funciona bien, se puede insertar la instrucción al final; pero lo más seguro es insertar la instrucción también en la parte de código de intercepción de errores (si se utiliza), por si las moscas.

Un saludo,

Pere

  Respuesta:  Jesus Herrero
En mi experiencia creo detectar de forma intuitiva que tu aplicación tiene un problema de código, bien creado por tí, o bien código interno de Access corrupto.Para tu tranquilidad te diré que tengo una aplicación que ocupa 80 Mb y corre perfectamente en PentiumII 350.
Yo haría:
-Crear una BD nueva, como alguien te a apuntado, e importar todos los objetos de la antigua.
-Abrir un módulo y compilar la base de datos, para que te indique si existen errores de VBA.
- Si así no lo solucionas, es posible que alguna consulta esté mal diseñada y se baje la memoria realizando cálculos.
- Si no has dividido la base de datos, como también te han apuntado, divídela. Si no te deja el asistente, es posible que alguna tabla esté corrupta. Eliminas todas y las vuelves a importar una a una, comprobando que abren bien cada vez.

  Respuesta:  JAUME CUSIDO MORRAL
POR ORDENADOR O RAM NO SERA. SEGURAMENTE TIENES ALGUN FORMULARIO CON MUCHOS OBJETOS O CREAS LISTAS MUY GORDAS. INTENTA REDUCIR OBJETOS.

  Respuesta:  Alejandro Salazar
Tengo un truco para "depurar" una aplicación en Access: CREAS UN ARCHIVO DE ACCESS NUEVO E IMPORTAS TODOS LOS ELEMENTOS DE LA APLICACIÓN QUE QUIERES DEPURAR

  Respuesta:  Alex Steven
Yo pienso que esta mal configurado tu computador fijate en los programas residentes que carga al inicio, los antivirus, icq, archivos temporales de windows o alguna otra cosa, ya que yo tengo una aplicacion que ocupa 35 MB y no se bloque ni en un portatil pentium 100 con 32 en RAM asi que pienso que es otra cosa y no tu aplicacion

  Respuesta:  Ricardo Palacio Peña
Me pregunto, qué aplicación (si es solo tablas, consultas, formularios e informes y no datos) ocupan 8 Megas. hay una función en Herramientas,utilidades de bases de datos, Compactar Base de Datos que elimina toda tabla, formulario, etc que hemos eliminado. Acces no elimina la basura de la memoria, osea, lo que hemos borrado sigue ocupando memoria.

Otra posible solución, es en herramientas, complementos, dividir base de datos. Esta opción separa las tablas del resto de la aplicación.

Prueba y me cuentas.