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
0 comentarios