Archivos de la etiquetas access

Actualizar vínculos o enlaces externos en Access

Diferencias entre Microsoft.Jet.OleDb y Microsoft.Ace.OleDb

Actualizar vínculos o enlaces externos en Access. Diferencias entre Microsoft.Jet.OleDb y Microsoft.Ace.OleDbOs voy a adelantar el resumen del artículo:

ACE es la evolución de JET

Podéis cambiar la cadena de conexión de Provider=Microsoft.Jet.OLEDB.4.0 a Provider=Microsoft.ACE.OLEDB.12.0

La Wikipedia cumple con su cometido explicando en detalle la historia de estos motores de bases de datos de Microsoft en este artículo.

Con la versión 2007 en adelante, Access incluye una versión específica de Office de JET, inicialmente llamado Office Access Connectivity Engine (ACE), pero que ahora se llama Access Database Engine. Este motor (ACE/ADE) es totalmente compatible con las versiones anteriores del motor de JET, por lo que lee y escribe archivos .MDB de las versiones de Access anteriores.

Se introduce un nuevo formato de archivo predeterminado .ACCDB que trae varias mejoras en el acceso, incluidos los tipos de datos complejos, como los campos de varios valores, el tipo de datos adjuntos y el seguimiento de la historia en los campos MEMO. También trae mejoras de seguridad y cifrado y permite la integración con Microsoft Office de Microsoft Windows SharePoint Services 3.0 y Outlook 2007.

Microsoft.ACE.OLEDB de 64 bits

Además, Microsoft.Ace.OleDb proporciona un controlador de 64 bits, por lo que puede ser utilizado en equipos de 64 bits, mientras que JET no puede. Anteriormente, el motor de base de datos JET era sólo de 32 bits y no se ha ejecutado de forma nativa en las versiones de 64 bits de Windows.

El driver no es parte del sistema operativo Windows, pero está disponible como un redistribuible.

En las Office 2010 vienen los componentes Microsoft.Ace.OleDb por separado, que se pueden descargar en el link Microsoft Access Database Engine 2010 Redistributable.  Esto es necesario cuando se instala una versión de 32 bits de Office en un equipo con Windows de 64 bits.

Actualizar vínculos o enlaces externos en Access

Ver objetos ocultos en Access 2007

En Access 2007 cambiaron de sitio la opción de Ver objetos ocultos de la base de datos.

Para mostrar los objetos ocultos en Microsoft Access 2007:

Sobre la barra superior del panel de exploración, pulsa sobre el botón derecho y, en el menú contextual, elige “Opciones de exploración”:

access-objetos-ocultos

Pulsamos sobre “Mostrar objetos ocultos”:

access-objetos-ocultos-2

 

 

 

 

 

 

combinar correspondencia

Aplicar formato a los datos combinados

combinar correspondenciaPara aplicar formato a los datos combinados, debe dar formato a los campos de combinación del documento principal. No aplique formato a los datos del origen de datos, ya que este formato se perderá cuando combine los datos en el documento.

Para cambiar el formato del texto

  1. En el documento principal, seleccione el campo que contiene la información a la que desee dar formato, incluyendo los caracteres de campo de combinación («« »»).
  2. En el menú Formato, haga clic en un comando, como Fuente o Párrafo y, a continuación, seleccione las opciones que desee.

Para cambiar el uso de mayúsculas

  1. En el documento principal, presione ALT+F9 para mostrar los códigos de campo.
  2. Inmediatamente después del nombre del campo (ADDRESSBLOCK, GREETINGLINE o MERGEFIELD), escriba un espacio y, a continuación, escriba uno de los siguientes modificadores de formato:

\* mayúsculas

Pone en mayúscula la primera letra de cada palabra.

\* PrimeraMayús

Pone en mayúscula la primera letra de la primera palabra.

\* Mayús

Pone en mayúscula todas las letras.

\* Minús

Pone todas las letras en minúscula.

  1. Vuelva a presionar las teclas ALT+F9 para ocultar los códigos de campo.

Para cambiar otro formato mediante los códigos de campo

Si desea controlar otros aspectos del formato, presione ALT+F9 para mostrar los códigos de campo en el documento principal y, a continuación, agregue modificadores a los campos de combinación.

Por ejemplo:

  • Para mostrar el número “34987,89” como “34.987,89 Pts”, agregue un modificador de imagen numérica (\# #.###,00 Pts).
  • Para mostrar el número “0945” como “9:45 p.m.”, agregue el modificador de imagen de fecha-hora (\@ “h:mm a.m./p.m.”).
  • Para asegurarse de que la información combinada tiene la misma fuente y el mismo tamaño en puntos que los aplicados al campo de combinación, agregue el modificador \* COMFORMATO.
Actualizar vínculos o enlaces externos en Access

Actualizar vínculos o enlaces externos en Access

Actualizar vínculos o enlaces externos en AccessAccess tiene la posibilidad de crear vínculos  o enlaces externos a otras fuentes de datos. Hasta aquí todo bien. El problema surge cuando movemos la base de datos a otra ubicación, porque Access guarda la ruta absoluta a las fuentes externas de datos. Para unas situaciones está bien y para otras nos hace la vida imposible sin avisar.

A continuación os muestro un código de VBA para insertar en una macro de Access para que lo podamos ejecutar cuando queramos o automáticamente cuando abramos la base de datos:

 

 

 

Option Compare Database
Option Explicit

Public Function UpdateLinks() As Boolean
    
    Dim cmdSQL As String
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim Database As String
    Dim DirDatabase As String
    Dim RefName As String
    Dim sName As String
    Dim sLinkBegin As String
    Dim sLinkEnd As String
    Dim ID As Long
    Dim updateRef As Boolean
    
    Set db = CurrentDb()
    Database = db.Name
    DirDatabase = GetPath(CurrentDb().Name)
    
    cmdSQL = “SELECT * FROM MSysObjects WHERE Type = 6″
    Set rs = db.OpenRecordset(cmdSQL, dbOpenSnapshot)
    
    While Not rs.EOF
        ID = rs(“ID”)
        sLinkBegin = rs(“Database”)
        sName = rs(“Name”)
        RefName = Filename(sLinkBegin)
        sLinkEnd = DirDatabase & RefName
        
        updateRefFalse
        If (Not FileExists(sLinkBegin)) And FileExists(sLinkEnd) Then
            updateRefTrue
        End If
        If sLinkBegin <> sLinkEnd And FileExists(sLinkBegin) And FileExists(sLinkEnd) Then
            If VbMsgBoxResult.vbOK = MsgBox(“Actualizar referencia ” & sLinkBegin & ” por la referencia ” & sLinkEnd & “?”, vbOKCancel, “Actualizar referencias“) Then
                updateRefTrue
            End If
        End If
            
        If updateRef Then
            Herramientas> Referencias
            Añadir: Microsoft ADO Ext 2.5 (o posterior) for DDL and Security.
            objCat.Tables(sName).Type = “LINK”
            Dim objCat As New ADOX.Catalog ‘Define the ADOX Catalog Object
            objCat.ActiveConnection = CurrentProject.Connection
            objCat.Tables(sName).Properties(“Jet OLEDB:Link Datasource“) = sLinkEnd
        End If
        rs.MoveNext
    Wend
    
    rs.Close
    db.Close
End Function

Private Function GetPath(path_and_filename As StringAs String
    Dim path As String
    Dim posicionPath As Integer
    
    posicionPath = InStrRev(path_and_filename, “\”)
    path = Left(path_and_filename, posicionPath)
    GetPath = path
End Function

Private Function FileExists(Filename As StringAs Boolean
    FileExists = (Dir(Filename) > “”)
End Function

Private Function Filename(ByVal strPath As StringAs String
    If Right$(strPath, 1) <> “\” And Len(strPath) > 0 Then
        Filename = Filename(Left$(strPath, Len(strPath) – 1)) + Right$(strPath, 1)
    End If
End Function