Access - Compactar - Compilar

 
Vista:
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Compactar - Compilar

Publicado por Pablo (328 intervenciones) el 27/12/2021 19:14:52
Hola, Feliz Navidad!!
Aún falta fin de año, sentidiño
Para finalizar el año una pregunta sencilla: Qué diferencia hay entre Compactar y Compilar, imagino que habrá muchas. Si desde la ventana de código voy a compilar crea un exe, no?, la base actual accdb no la toca, no?, y si voy a compactar/reparar qué hace?

Gracias
Pablo
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
Imágen de perfil de Eduardo

Compactar - Compilar

Publicado por Eduardo (334 intervenciones) el 27/12/2021 20:42:09
Son diferentes, Compactar tiene como propósito "eliminar" el espacio que queda después de retirar registros, igualmente, reinicia los campos autonuméricos en tablas que están vacías, también puede "reparar" la base de datos. Reduce el tamaño.

Compilar, tiene como objeto retirar todo el código VBA de la base de datos, reduciendo su tamaño y bloquea que no se modifique el diseño de los objetos. Access no crea archivos EXE, es decir, para correr una aplicación compilada se requiere de Access y se deben revisar algunos aspectos de acuerdo con la versión compilada con la versión de Access donde se va a correr el programa.
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
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Compactar - Compilar

Publicado por Pablo (328 intervenciones) el 27/12/2021 22:36:17
Vale. Compactar `repara´ , reduce la base de datos. Compilar elimina el código vba, supongo que lo pasa a código máquina, si yo compilo la base con la que estoy trabajando pierdo el código que tengo?, o lo mantengo. Para crear un exe hay que tener el runtime de access?, en mi caso sería el 2010 o el runtime es general.
Gracias Eduardo
Pablo
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

Compactar - Compilar

Publicado por Anonimo (3368 intervenciones) el 27/12/2021 23:01:59
Compactar elimina el espacio temporal que se utiliza cuando se generan consultas listados ... cualquier trabajo con los datos, también regenera los índices de las tablas (por ello puede recuperar el ultimo numero de un campo autonumerico).

Reduce el tamaño de la aplicación y aumenta la velocidad de ejecución

Compilar NO elimina el código generado en VBA, lo verifica y previene que su sintaxis sea la adecuada, para limpiar el código se utiliza la opción 'Decompile'.

Decompile si puede reducir el tamaño del codigo al eliminar los restos de los experimentos (restos de código o de formularios/informes)

Access NO puede crear ejecutables de tipo Exe, y para utilizar una aplicación 'sin Access' se necesita una versión reducida (gratuita a partir de la A'2010') que se la conoce como 'Runtime' (hay una con cada versión de Access).

Aparte esta lo generar un fichero (MDE) que baja de nivel lo programado en el basic (VBA ) y entre sus virtudes esta la ejecutarse con mas velocidad ya que no necesita verificar el codigo pues no permite modificarlo.

Esta opcion es exigente, requiere que la aplicación no contenga errores y este programada con un cierto nivel (suele dar problemas con las redundancias, le agotan el buffer de trabajo).

Un MDE no es reversible, y es 'paralelo' a su origen que conviene guardar para futuras modificaciones

Permite cambios en las tablas y las consultas, bloquea el codigo y el diseño de formularios, informes y macros, hace inaccesible el VBA.
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
Imágen de perfil de Eduardo

Compactar - Compilar

Publicado por Eduardo (334 intervenciones) el 28/12/2021 02:20:55
Pablo que pena me equivoque en la definición de compilar, esto lo que hace es una verificación del código VBA y las referencias, pero no verifica errores de programación o falta de definición de variables. Si no tiene Access puede instalar un Runtime pero este NO crea ejecutable EXE.

Por lo regular primero se crea un archivo mde (Versión Access 2003 y anteriores) o accde (Versiones 2007 y superiores), en este caso se crean archivos binarios que no contienen código VBA, y si no hay Access para abrirlos se puede utilizar un Runtime, es posible que se deban hacer algunos ajustes principalmente cuando en una consulta se hace referencia a un formulario, Access fija la palabra Formularios y para el runtime es mejor trabajar en inglés, decir, Forms.

Ahora, se puede crear es un ejecutable EXE para hacer una instalación del programa (base de datos, consultas, etc y archivos complementarios, como imágenes y carpetas que requiera la aplicación) de tal forma que se cree un acceso directo al escritorio y que se adicione al menú de programas, personalmente utilizo el programa SETUP FACTORY, pero también se puede crear con Visual Studio.

Sintetizando el RUNTIME no es para crear archivo EXE, es para abrir un archivo mde o accde creado con Access cuando en el PC no se ha instalado el office completo, es decir, con Microsoft Access. Se debe descargar e instalar el Runtime de acuerdo con la versión que se ha creado el archivo mde o accde.
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
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Compactar - Compilar

Publicado por Pablo (328 intervenciones) el 28/12/2021 18:11:33
Hola
Edudardo dice: Compilar 'lo que hace es una verificación del código VBA y las referencias, pero no verifica errores de programación',perdona pero no entiendo, verificar el código no es verificar errores de programación?
Un archivo MDE no tiene código, ok? pero no es un EXE, qué diferencias hay?
Para crear un EXE me hace falta el runtime?, en este caso de 2010, es gratuito?

Gracias

Pablo
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

Compactar - Compilar

Publicado por Anonimo (3368 intervenciones) el 28/12/2021 20:39:48
Compilar es una de las opciones que hay en el menú de la ventana de VBA.

Verifica que la sintaxis sea correcta (que los parámetros en las funciones -tanto las integradas o las creadas por el programador- sean los correctos en tipo y cantidad) que las variables estén declaradas en el entorno en que se utilicen y ....

Si en una relación el programador crea antes al registro secundario (el hijo) antes que al padre y las sentencias son formalmente correctas (su error es el orden en que se ejecutan) la compilación NO lo detectara pero al ejecutarse se generara un error en tiempo de ejecución..

Pero .... se detendrá (y señalara) en donde esta el conflicto (a veces de una forma aproximada) lo que facilita encontrar el/un error.

Los archivos de tipo MDE (o su versión mas reciente) SI TIENEN CODIGO esto es: TIENEN TODO EL CODIGO o la aplicación no funcionaria según 'se programo'.

Otra cosa es que ese código sea accesible, pues la creación del MDE implica 'traducir a un entorno de menor nivel, mas próximo al binario' lo programado en lenguaje BASIC y lo fija, por ello EXIGE que no existan errores que le impidan 'traducirlo' (no confundamos 'bajarlo de nivel' a crear un código de ceros y unos, hay 'muchas capas' en la programación para que la maquina entienda y obedezca lo que se le solicita).

Un EXE es una aplicación que funciona sin necesitar 'un motor' externo, es auto suficiente.

Un MDE necesita a a Access para funcionar y Microsoft lo que decidió fue eliminar toda la facilidad de programar y solo le permite ejecutar (se le puede considerar un Access 'capado' o recortado en funcionalidad) y por ello hay determinadas acciones que hay que modificar para que no de errores en tiempo de ejecución.

En líneas generales se podrá llegar a decir que una aplicación que se pueda compilar es mas fiable que una no compilada (por carecer en principio de errores básicos).

Si, el runtime de A'2010 (y según mi información también los posteriores) son gratuitos, lo único que requiere licencia es Access como generador de aplicaciones (que después podrán funcionar con el runtime).

Por cierto, normalmente los runtimes 'también' pueden con versiones de Access anteriores y si no tienen características diseñadas para versiones posteriores (que no entendería) también puede trabajar con aplicaciones creadas con versiones mas altas.

P.D.
Creo que entenderás esto: 'manda-carallo con la pregunta sencilla' o como la habéis complicado.
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
Imágen de perfil de Eduardo

Compactar - Compilar

Publicado por Eduardo (334 intervenciones) el 28/12/2021 21:13:45
ANONIMO con mucho respeto, para que complicar la respuesta con tanta literatura, seguro que el usuario no va entender su respuesta ni la mía.
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
sin imagen de perfil
Val: 266
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Compactar - Compilar

Publicado por Pablo (328 intervenciones) el 29/12/2021 19:02:04
Hola!
Manda carallo!!, entendí la respuesta
Gracias

Pablo
PD: Abro otro hilo con otra consulta
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