
02 May Convertir un MDB de Access a Texto
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:
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.
Código del formulario:
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
Sin comentarios