"Decompilando" una base de datos Access para mejorar el rendimiento

abril 5, 2007

Con el tiempo, la parte de la base de datos de Access que almacena el código VBA de tus módulos puede estar almacenado de forma incorrecta y en algunos casos generar extraños e inexplicables errores.

Al mismo tiempo que compilas y ejecutas el código VBA quedan residentes antiguos estados que ya no serán necesarios en el futuro. Con frecuencia las operaciones de Reparación y Compactación de una base de datos Access no libera el espacio ocupado por el código antiguo.

Para solucionar este problema usaremos el comando de linea “decompile” que indica a Access que debe descartar todo el código compilado previamente, sólo permanecerá el código fuente.

Para decompilar una base de datos Access debemos …


——————————————————–
Nos hemos mudado a www.xperimentos.com, puedes continuar leyendo este post en este enlace.
——————————————————–


Mejorando la Macro de copiar tablas de Access a Excel

abril 4, 2007

En un post anterior os mostramos como copiar tablas de Access a Excel de forma rapida, evitando los problemas de usar copiar y pegar.

La Macro funcionaba bien, pero puede mejorarse de forma relativamente sencilla para que sea mas reutilizable.

1) La primera mejora es añadir la Macro al libro de Macros Personal, para que este disponible siempre que utilicemos Excel. Sino sabéis como realizarlo os recomiendo que veáis este post del blog de JDL Excel.

2) Reemplazar la entrada manual de la ruta y el nombre Access, mediante una ventana de selección de ficheros. Reemplazamos la instrucción

InputBox(“¿Ruta y nombre del fichero Access?”)

por

Application.GetOpenFilename(“Access (*.mdb), *.mdb”, , “Seleccionar fichero Access”)

3) Reemplazar la entrada manual del nombre de la tabla o consulta por un selector que obtenga un listado de tablas y consultas disponibles. Esto implica la creación de un pequeño formulario y crear una lista de selección. Dada su complejidad y para no complicar este post, este punto lo trataremos en breve en otro post, cuando este publicado incluiremos un enlace.

*) El resultado final a falta de incorporar las mejoras del punto 3. El siguiente código dentro del libro de Personal:

‘==========================================
Public Sub Copiar_Tabla_Access()
  Dim oConexion As ADODB.Connection
  Dim rsTabla As ADODB.Recordset
  Dim sNombreTabla As String
  Dim sNombreAccess As String
  Dim i As Integer

  sNombreAccess = Application.GetOpenFilename( _
    “Access (*.mdb), *.mdb”, , “Seleccionar fichero Access”)

  sNombreAccess = InputBox(“¿Ruta y nombre del fichero Access?”)
  If sNombreAccess <> “” Then
    sNombreTabla = InputBox(“¿nombre de la tabla/consulta?”)
    Set oConexion = New ADODB.Connection
    oConexion.CursorLocation = adUseClient
    oConexion.Open “PROVIDER=Microsoft.Jet.OLEDB.4.0;” & _
                                “Data Source=” & sNombreAccess & “;”
    Set rsTabla = New ADODB.Recordset
    rsTabla.Open “Select * From [” & sNombreTabla & “]”, _
                         oConexion, _
                         adOpenStatic
    ActiveSheet.Cells.CopyFromRecordset rsTabla
    ActiveSheet.Rows(“1:1”).Insert Shift:=xlDown
    For i = 0 To rsTabla.Fields.Count – 1
      ActiveSheet.Cells(1, i + 1).Value = rsTabla.Fields(i).Name
    Next
    rsTabla.Close
    oConexion.Close
    Set rsTabla = Nothing
    Set oConexion = Nothing
  End If
End Sub
‘==========================================


Copiar datos de Access a Excel de forma rápida

abril 3, 2007

Muchas veces tenemos la necesidad de copiar datos de una tabla o consulta Access a una hoja Excel. Este paso es sencillo, simplemente copiar y pegar. Copiamos los datos en Access y los pegamos en Excel, pero si el tamaño/cantidad de datos es grande esta operación puede dejar literalmente “tostado” nuestro ordenador durante varios minutos. Los minutos en los que se queda “tostado” variaran dependiendo de la cantidad de datos y la memoria RAM que tenga nuestro ordenador.

Afortunadamente existe una mejor solución para copiar datos de una tabla o consulta Access a Excel, es un poco más compleja, pero no mucho más. Vamos a crear una Macro y usar la función de VBA “Cells.CopyFromRecordset” para copiar tablas y consultas de Access en segundos.

Pasos:

1) Abrir Excel

2) Abrir el editor de Macros (Pulsar ALT+F11)

3) Copiar y pegar la siguiente Macro:


——————————————————–
Nos hemos mudado a www.xperimentos.com, puedes continuar leyendo el post en este enlace.
——————————————————–


¿Por qué Excel cambia el formato de los gráficos?

abril 1, 2007

Este es un misterio que no he logrado resolver, pero al menos he logrado paliar sus efectos.

Una de las soluciones que he utilizado es programar una Macro que genere o aplique a un grafico existente un formato específico. Esta opción no es sencilla y sigue sin evitar el problema (salvo que detectemos cuando hay algún cambio y volvamos a ejecutar la Macro de forma automática, lo cual tampoco es sencillo).

Hábilmente podemos encontrar una solución muy sencilla …


——————————————————–
Nos hemos mudado a www.xperimentos.com, puedes continuar leyendo este post en este enlace.
——————————————————–


Selección de registros aleatorios en Access

marzo 27, 2007

Vamos a intentar explicar que pasos tenemos que seguir para seleccionar una muestra aleatoria de una base de datos access. Para ello lo primero que tenemos que hacer es crear un campo que contenga dicha aleatoriedad.

En mi caso siempre creo la aleatoriedad de la misma forma, un sistema un poco largo pero así se asegura la aleatoriedad (por mi trabajo es bastante importante que la muestra sea lo más aleatoria posible)

  • Creo un campo autonumérico que será la semilla del número aleatorio y un campo Aleat Vacío (al que hemos llamado aut).
  • …………..

 

——————————————————–
Nos hemos mudado a www.xperimentos.com, puedes continuar leyendo este post en este enlace.
——————————————————–


Sacando partido a la funcion SUMAPRODUCTO de EXCEL

marzo 16, 2007

La función SUMAPRODUCTO de Microsoft Excel es bastante desconocida, ciertamente no aporta un valor diferencial, no permite hacer cosas imposibles de realizar con otras fórmulas, pero simplifica de forma significativa como realizar algunos cálculos reduciendo el número de pasos necesarios.


——————————————————–
Nos hemos mudado a www.xperimentos.com, puedes continuar leyendo este post en este enlace.
——————————————————–


Tabla de traducción de fórmulas Excel en español a inglés

marzo 3, 2007

Cuando trabajas con Microsoft Excel aprendes a utilizar un montón de fórmulas para el trabajo del día a día. Sin embargo, las fórmulas Excel no diferentes dependiendo del idioma en el que tengamos instalado Microsoft Excel, esto permite a los usuarios tener fórmulas mas intuitivas en su idioma, pero en contrapartida si nos cambian de idioma la aplicación Microsoft Excel estaremos totalmente perdidos, ya que no será válida ninguna de las fórmulas que conocemos.


——————————————————–
Nos hemos mudado a www.xperimentos.com, puedes continuar leyendo este post en este enlace.
——————————————————–