Option Explicit Private Sub Actualiza() ' La MDB donde copiar los formularios, no debe ser ni una MDE (No permite cambios) ni estar ' protegida mediante la proteccion de encriptación del ' código BAS. ' Sí permite protección de Pasword general de la base de datos ' Así como otras protecciones de tipo interno, ajenas a Access ' Quito proteccion de Clave global si la hubiera en la base destino Desproteje "C:\Rutaquesea\BaseB.mdb" '************************************************************************ '* Los formularios a Copiar, pueden ser nuevos, o bien * '* substituir a otros ya existentes. En el segundo caso, Acces * '* me pide conformidad para sobreescribir. Siempre hay que decir que Sí * '* pues se trata de Actualizaciones.Los formularios origen, acompañan a * '* a esta base de actualización:Tanto los nuevos como los ya existentes.* '************************************************************************ ' Por cada formulario a incorporar, haremos una llamada de este tipo CopiarFormularioAccess "C:\Rutaquesea\BaseB.mdb", "Miformulario" 'otra llamada para copiar mas formularios 'Una vez terminado, protejo de nuevo con clave Global la Base Destino Proteje "C:\Rutaquesea\BaseB.mdb" MsgBox "Proceso de Actualización de Pantallas concluido.", vbInformation + vbOKOnly, "FIN DE PROCESO" End Sub Sub CopiarFormularioAccess(RutaDestinoFormularios As String, _ NombreForm As String) DoCmd.CopyObject RutaDestinoFormularios, NombreForm, acForm, _ NombreForm Exit Sub End Sub Sub Desproteje(Base As String) Dim Dbs As Database Set Dbs = OpenDatabase(Base, True, False, ";PWD=ClaveProteccion") Dbs.NewPassword "ClaveProteccion", "" Dbs.Close Set Dbs = Nothing End Sub Sub Proteje(Base As String) Dim Dbs As Database Set Dbs = OpenDatabase(Base, True, False, ";PWD=") Dbs.NewPassword "", "ClaveProteccion" Dbs.Close Set Dbs = Nothing End Sub