« en: Abril 13, 2012, 10:02:05 pm »
Palabras clave:
Extraer, exportar, código, fuenteAutor:
Juan M. Afán de RiberaExtraído de:
La web del Búho
Objetivo: Extraer en un fichero de texto, todo el código inmerso en una MDB.
Dice el Búho...
En apenas 8 líneas de código, el Maestro y ciertamente Gurú de Access, mi amigo Juan, es capaz de hacerlo.
Te presento recién salido de su laboratorio mágico, dicho código...aún sin depurar mucho (Estoy seguro que muy pronto lo pondrá en su WEB y yo te pondré aquí el enlace definitivo a dicha Web.
Pero mientras tanto, para ir entrando en calor...prueba el siguiente procedimiento que ahora te indico.
Para Access 2000 o superior.
' 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 externa:
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.mdb"
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
« Última modificación: Abril 13, 2012, 11:28:01 pm por xavi »
En línea