Esta es una pequeña utilidad desarrollada con Visual Basic que permite convertir a un fichero de texto una base de datos de Microsoft Access. El proceso crea una subcarpeta donde están las bases de datos y en la misma crea un fichero por cada una de la tablas del MDB. En principio se crean en formato csv pero modificando el parámetro de esta instrucción es posible obtener la información en otros formatos como acFormatActiveXServer, acFormatHTML, acFormatIIS, acFormatRTF, acFormatTXT, acFormatXLS:
PLAIN TEXT Visual Basic: app.DoCmd.OutputTo acOutputTable, tdf.Name,acFormatTXT, strFolderOutput & "\" & tdf.Name & ".txt"
Hay dos métodos posibles para la exportación el DoCmd.TransferText y el DoCmd.OutputTo, se pueden utilizar cualquiera de los dos.
Aquí está el archivo para descargar y debajo el código del formulario (también hay un módulo en el proyecto con 2 funciones complementarias.
MDB2txt
Código del formulario:
PLAIN TEXT Visual Basic: Option Explicit
Dim app As Access.Application
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Dim strMDB2txt As String
Dim strSQL As String
Dim strFolderOutput As String
Dim fso As FileSystemObject
Private Sub Form_Load()
'Me.Width = 6500
'Me.Height = 3300
End Sub
Private Sub cmdMDB2txt_Click()
cdgMDB2txt.DefaultExt = "mdb"
cdgMDB2txt.ShowOpen
strMDB2txt = ValidarString(cdgMDB2txt.FileName)
If strMDB2txt <> "" Then
txtMDB2txt = strMDB2txt
Else
txtMDB2txt = ""
End If
End Sub
Private Sub cmdCancelar_Click()
Unload Me
End Sub
Private Sub cmdConvertir_Click()
' Inicio de Proceso
lblMDB2txt.Caption = "Iniciando proceso ..."
Set app = New Access.Application
app.OpenCurrentDatabase strMDB2txt
Set fso = New FileSystemObject
Set dbs = OpenDatabase(strMDB2txt)
strFolderOutput = ArchivoInformacion(strMDB2txt, itxpath) & "\" & Mid(Dir(strMDB2txt), 1, (Len(Dir(strMDB2txt)) - 4))
If fso.FolderExists(strFolderOutput) = False Then
fso.CreateFolder strFolderOutput
End If
' Procesar las Tablas
For Each tdf In dbs.TableDefs
GoSub ExportarTabla
Next
' Cerrar Bases de Datos
dbs.Close
Set app = Nothing
Set fso = Nothing
' Fin de Proceso
MsgBox "Proceso Finalizado", vbInformation, "Convertir MDB a Texto"
txtMDB2txt = ""
lblMDB2txt.Caption = ""
Exit Sub
ExportarTabla:
If tdf.Attributes = dbAttachedTable Then Return
If LCase(Left(tdf.Name, 4)) = "msys" Then Return
lblMDB2txt.Caption = "Convirtiendo " & tdf.Name
app.DoCmd.TransferText acExportDelim, "", tdf.Name, strFolderOutput & "\" & tdf.Name & ".csv"
'app.DoCmd.OutputTo acOutputTable, tdf.Name,acFormatTXT, strFolderOutput & "\" & tdf.Name & ".txt"
Me.Refresh
Return
End Sub