El objetivo de esta rutina es extraer, a un fichero de texto, todo el código de una base de datos Access.

Código original de Juan M. Afán de Ribera (Happy)

' Código escrito originalmente por Juan M Afán de Ribera.
' Estás autorizado a utilizarlo dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web,
' por favor, contactar con el autor en
'
'     accessvba@ya.com (Nota de Xavi: OBSOLETO)
'
' Este código se brinda por cortesía de
' Juan M. Afán de Ribera
'
'Con este código pondrás en un santiamén todo el código de una base de datos en un fichero TXT, con el nombre del proyecto como nombre del fichero, y separado por nombres de módulos:

Sub exportarCodigo()
Dim obj As Object
Dim archivo As String
Dim titulo As String

    archivo = CurrentProject.Path & "\" & Application.VBE.ActiveVBProject.Name & ".txt"
    Open archivo For Append As #1
    titulo = "Código del proyecto: " & UCase(Application.VBE.ActiveVBProject.Name)
    Print #1, titulo
    Print #1, String(Len(titulo), "-")
    Print #1, vbCrLf & vbCrLf
    For Each obj In Application.VBE.ActiveVBProject.VBComponents
        Print #1, UCase(obj.Name)
        Print #1, String(Len(obj.Name), "-")
        Print #1, vbCrLf & vbCrLf
        Print #1, obj.CodeModule.Lines(1, obj.CodeModule.CountOfLines)
        Print #1, vbCrLf & vbCrLf
    Next
    Close #1
   
End Sub

Y de una base de datos externa también se puede extraer:

Sub exportarCodigoB()
Dim obj As Object
Dim archivo As String
Dim titulo As String
Dim ObjetoAccessExterno As Object ' Access.Application
Set ObjetoAccessExterno = CreateObject("Access.Application")
ObjetoAccessExterno.OpenCurrentDatabase CurrentProject.Path & "\baseexterna.accdb"
    archivo = CurrentProject.Path & "\" & Application.VBE.ActiveVBProject.Name & ".txt"
    Open archivo For Append As #1
    titulo = "Código del proyecto: " & UCase(Application.VBE.ActiveVBProject.Name)
    Print #1, titulo
    Print #1, String(Len(titulo), "-")
    Print #1, vbCrLf & vbCrLf
    For Each obj In ObjetoAccessExterno.Application.VBE.ActiveVBProject.VBComponents
        Print #1, UCase(obj.Name)
        Print #1, String(Len(obj.Name), "-")
        Print #1, vbCrLf & vbCrLf
        Print #1, obj.CodeModule.Lines(1, obj.CodeModule.CountOfLines)
        Print #1, vbCrLf & vbCrLf
    Next
    Close #1
    ObjetoAccessExterno.Quit
   
End Sub
Categorías: Access

0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *