EXPORTA TABLA DE MS ACCESS A EXCEL CON VISUAL BASIC 6

Para exportar una tabla de Microsoft Access a un archivo Excel (.xls) utilizando Visual Basic 6, puedes utilizar el componente Microsoft Office Excel. Asegúrate de que tienes instalado Microsoft Excel en tu sistema antes de ejecutar este código. Aquí tienes un ejemplo de cómo hacerlo:


Dim ExcelApp As Object

Dim ExcelWorkbook As Object

Dim ExcelWorksheet As Object

Dim AccessDB As Database

Dim AccessTable As Recordset

Dim i As Integer

Dim j As Integer


' Inicializa una instancia de Excel

Set ExcelApp = CreateObject("Excel.Application")

ExcelApp.Visible = True ' Establece esto en True si deseas que Excel sea visible


' Abre un archivo de Excel y agrega una hoja de trabajo

Set ExcelWorkbook = ExcelApp.Workbooks.Add

Set ExcelWorksheet = ExcelWorkbook.Worksheets(1)


' Abre la base de datos de Access

Set AccessDB = OpenDatabase("RutaDeTuBaseDeDatos.accdb") ' Cambia la ruta a tu base de datos


' Abre la tabla de Access que deseas exportar

Set AccessTable = AccessDB.OpenRecordset("NombreDeTuTabla") ' Cambia el nombre de tu tabla


' Copia los datos de la tabla de Access a Excel

For i = 0 To AccessTable.Fields.Count - 1

    ExcelWorksheet.Cells(1, i + 1).Value = AccessTable(i).Name

Next i


i = 2 ' Comienza desde la segunda fila en Excel

AccessTable.MoveFirst

Do Until AccessTable.EOF

    For j = 0 To AccessTable.Fields.Count - 1

        ExcelWorksheet.Cells(i, j + 1).Value = AccessTable(j).Value

    Next j

    i = i + 1

    AccessTable.MoveNext

Loop


' Guarda el archivo de Excel

ExcelWorkbook.SaveAs "RutaDeTuArchivo.xls" ' Cambia la ruta y el nombre de tu archivo


' Cierra y libera los objetos

AccessTable.Close

AccessDB.Close

Set AccessTable = Nothing

Set AccessDB = Nothing


ExcelWorkbook.Close

ExcelApp.Quit

Set ExcelWorksheet = Nothing

Set ExcelWorkbook = Nothing

Set ExcelApp = Nothing

Asegúrate de reemplazar "RutaDeTuBaseDeDatos.accdb", "NombreDeTuTabla" y "RutaDeTuArchivo.xls" con las rutas y nombres de archivo adecuados. Este código abrirá la base de datos de Access, copiará los datos de la tabla seleccionada a una hoja de trabajo en Excel y guardará el archivo de Excel en la ubicación especificada.





User

AccessDB = OpenDatabase("RutaDeTuBaseDeDatos.accdb") el archivo tiene contraseña para ingresar como sera el codigo nuevo

ChatGPT

Si tu archivo de base de datos de Access está protegido con una contraseña, necesitarás ajustar el código para proporcionar la contraseña al abrir la base de datos. Aquí tienes una versión modificada del código que incluye la contraseña:


vb

Copy code

Dim ExcelApp As Object

Dim ExcelWorkbook As Object

Dim ExcelWorksheet As Object

Dim AccessDB As Object ' Cambiamos el tipo de datos de Database a Object

Dim AccessTable As Object ' Cambiamos el tipo de datos de Recordset a Object

Dim i As Integer

Dim j As Integer


' Inicializa una instancia de Excel

Set ExcelApp = CreateObject("Excel.Application")

ExcelApp.Visible = True ' Establece esto en True si deseas que Excel sea visible


' Abre un archivo de Excel y agrega una hoja de trabajo

Set ExcelWorkbook = ExcelApp.Workbooks.Add

Set ExcelWorksheet = ExcelWorkbook.Worksheets(1)


' Abre la base de datos de Access con la contraseña

Set AccessDB = CreateObject("DAO.DBEngine.120").OpenDatabase("RutaDeTuBaseDeDatos.accdb", False, False, ";PWD=TuContraseña") ' Cambia la ruta y la contraseña


' Abre la tabla de Access que deseas exportar

Set AccessTable = AccessDB.OpenRecordset("NombreDeTuTabla") ' Cambia el nombre de tu tabla


' Copia los datos de la tabla de Access a Excel

For i = 0 To AccessTable.Fields.Count - 1

    ExcelWorksheet.Cells(1, i + 1).Value = AccessTable(i).Name

Next i


i = 2 ' Comienza desde la segunda fila en Excel

AccessTable.MoveFirst

Do Until AccessTable.EOF

    For j = 0 To AccessTable.Fields.Count - 1

        ExcelWorksheet.Cells(i, j + 1).Value = AccessTable(j).Value

    Next j

    i = i + 1

    AccessTable.MoveNext

Loop


' Guarda el archivo de Excel

ExcelWorkbook.SaveAs "RutaDeTuArchivo.xls" ' Cambia la ruta y el nombre de tu archivo


' Cierra y libera los objetos

AccessTable.Close

Set AccessTable = Nothing


AccessDB.Close

Set AccessDB = Nothing


ExcelWorkbook.Close

ExcelApp.Quit

Set ExcelWorksheet = Nothing

Set ExcelWorkbook = Nothing

Set ExcelApp = Nothing

Asegúrate de cambiar "RutaDeTuBaseDeDatos.accdb" a la ruta de tu base de datos y "TuContraseña" a la contraseña de tu base de datos de Access. Este código abrirá la base de datos de Access con la contraseña proporcionada y exportará la tabla a un archivo de Excel.





User

Dim AccessDB As Database me da error no se ha definido el tipo definido por el usuario que referencia lleva 

ChatGPT

Mis disculpas por la confusión. El tipo Database se refiere a un objeto definido en la biblioteca DAO (Data Access Objects) que es comúnmente utilizada para interactuar con bases de datos de Microsoft Access. Para usar este tipo, debes asegurarte de que tengas la referencia adecuada en tu proyecto de Visual Basic 6. La referencia que necesitas agregar es "Microsoft DAO X.Y Object Library", donde X.Y corresponde a la versión de Microsoft Office que estás utilizando (por ejemplo, 12.0 para Office 2007).


Para agregar esta referencia, sigue estos pasos:


Abre tu proyecto de Visual Basic 6.

En el menú, ve a "Proyecto" y selecciona "Referencias..."

En la lista de referencias disponibles, busca "Microsoft DAO X.Y Object Library" y marca la casilla de verificación.

Haz clic en "Aceptar" para agregar la referencia.

Una vez que hayas agregado la referencia, el tipo Database estará disponible en tu proyecto.


Si prefieres utilizar otro enfoque sin necesidad de la referencia DAO, puedes hacerlo de la siguiente manera utilizando ADO (ActiveX Data Objects), que no requiere una referencia especial:


vb

Copy code

Dim ExcelApp As Object

Dim ExcelWorkbook As Object

Dim ExcelWorksheet As Object

Dim Conn As Object

Dim Recordset As Object

Dim i As Integer

Dim j As Integer


' Inicializa una instancia de Excel

Set ExcelApp = CreateObject("Excel.Application")

ExcelApp.Visible = True ' Establece esto en True si deseas que Excel sea visible


' Abre un archivo de Excel y agrega una hoja de trabajo

Set ExcelWorkbook = ExcelApp.Workbooks.Add

Set ExcelWorksheet = ExcelWorkbook.Worksheets(1)


' Crea una conexión a la base de datos de Access

Set Conn = CreateObject("ADODB.Connection")

Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=RutaDeTuBaseDeDatos.accdb;Jet OLEDB:Database Password=TuContraseña" ' Cambia la ruta y la contraseña


' Abre la tabla de Access que deseas exportar

Set Recordset = CreateObject("ADODB.Recordset")

Recordset.Open "SELECT * FROM NombreDeTuTabla", Conn ' Cambia el nombre de tu tabla


' Copia los datos de la tabla de Access a Excel

For i = 0 To Recordset.Fields.Count - 1

    ExcelWorksheet.Cells(1, i + 1).Value = Recordset.Fields(i).Name

Next i


i = 2 ' Comienza desde la segunda fila en Excel

Recordset.MoveFirst

Do Until Recordset.EOF

    For j = 0 To Recordset.Fields.Count - 1

        ExcelWorksheet.Cells(i, j + 1).Value = Recordset.Fields(j).Value

    Next j

    i = i + 1

    Recordset.MoveNext

Loop


' Guarda el archivo de Excel

ExcelWorkbook.SaveAs "RutaDeTuArchivo.xls" ' Cambia la ruta y el nombre de tu archivo


' Cierra y libera los objetos

Recordset.Close

Set Recordset = Nothing


Conn.Close

Set Conn = Nothing


ExcelWorkbook.Close

ExcelApp.Quit

Set ExcelWorksheet = Nothing

Set ExcelWorkbook = Nothing

Set ExcelApp = Nothing

Este código utiliza ADO en lugar de DAO y no requiere agregar una referencia específica para DAO en tu proyecto. Asegúrate de cambiar "RutaDeTuBaseDeDatos.accdb" a la ruta de tu base de datos y "TuContraseña" a la contraseña de tu base de datos de Access.





User

Set AccessDB = OpenDatabase("basedatos.accdb") como es la ruta adyacente

ChatGPT

Si el archivo de base de datos "basedatos.accdb" se encuentra en el mismo directorio que el archivo de tu proyecto de Visual Basic 6, puedes usar una ruta relativa para referenciarlo. La ruta relativa se refiere a la ubicación del archivo en relación con el directorio del proyecto.


Si el archivo de base de datos está en el mismo directorio que tu proyecto, simplemente puedes especificar el nombre del archivo sin la ruta completa. Aquí está cómo se vería el código:


vb

Copy code

Set AccessDB = OpenDatabase("basedatos.accdb")

Sin embargo, si el archivo de base de datos se encuentra en un directorio diferente, debes proporcionar la ruta relativa desde la ubicación de tu proyecto hasta el archivo de base de datos. Por ejemplo, si el archivo de base de datos está en un directorio llamado "Data" que se encuentra en el mismo nivel que el directorio de tu proyecto, puedes especificar la ruta relativa de la siguiente manera:


vb

Copy code

Set AccessDB = OpenDatabase("..\Data\basedatos.accdb")

En este ejemplo, ".." se usa para retroceder un nivel en el directorio y luego se navega a la carpeta "Data" donde se encuentra el archivo de base de datos.


Asegúrate de ajustar la ruta relativa según la ubicación real de tu archivo de base de datos en relación con tu proyecto de Visual Basic 6.





User

Set AccessDB = OpenDatabase("basedatos.accdb") me muestra error de  que no reconoce el formato de la base de datos

ChatGPT

El error "No se reconoce el formato de la base de datos" suele ocurrir cuando se intenta abrir una base de datos de Access con una versión incompatible de Microsoft Access. Esto puede deberse a diferencias de formato entre la versión de Access que estás utilizando para abrir la base de datos y la versión en la que se creó la base de datos.


Para resolver este problema, asegúrate de lo siguiente:


Versión de Microsoft Access: Verifica que estás utilizando la misma versión (o una versión posterior) de Microsoft Access que se utilizó para crear la base de datos "basedatos.accdb". Si la base de datos se creó en una versión más reciente, es posible que no puedas abrirlo en una versión anterior de Access.


Formato de la base de datos: Asegúrate de que la base de datos esté en un formato compatible. Si la base de datos se creó en un formato ".accdb" (formato de base de datos de Access 2007 en adelante), deberías utilizar una versión de Access que admita este formato. Si tienes una versión más antigua de Access, deberás convertir la base de datos a un formato compatible, como ".mdb" o ".accdb" dependiendo de tu versión de Access.


Contraseña: Si la base de datos está protegida con una contraseña, asegúrate de proporcionar la contraseña correcta al intentar abrirla.


Referencias: Verifica que tengas las referencias necesarias en tu proyecto de Visual Basic 6. Puedes necesitar la referencia "Microsoft DAO X.Y Object Library" (donde X.Y corresponde a la versión de Office). Asegúrate de que esta referencia esté presente y sea la correcta para la versión de Access que estás utilizando.


Si después de realizar estas verificaciones sigues teniendo problemas, asegúrate de que la base de datos "basedatos.accdb" no esté dañada. Puedes intentar abrirlo directamente desde Microsoft Access para comprobar si se abre correctamente.





User

usar cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;

ChatGPT

Si deseas utilizar la cadena de conexión "Provider=Microsoft.Jet.OLEDB.4.0;" para conectarte a una base de datos de Access en formato ".mdb" (versión anterior de Access), puedes hacerlo a través de ADO (ActiveX Data Objects) en lugar de DAO (Data Access Objects). Asegúrate de que tengas las bibliotecas de ADO habilitadas en tu proyecto de Visual Basic 6.


Aquí tienes un ejemplo de cómo establecer la cadena de conexión y abrir la base de datos utilizando ADO:


vb

Copy code

Dim ExcelApp As Object

Dim ExcelWorkbook As Object

Dim ExcelWorksheet As Object

Dim Conn As Object

Dim Recordset As Object

Dim i As Integer

Dim j As Integer


' Inicializa una instancia de Excel

Set ExcelApp = CreateObject("Excel.Application")

ExcelApp.Visible = True ' Establece esto en True si deseas que Excel sea visible


' Abre un archivo de Excel y agrega una hoja de trabajo

Set ExcelWorkbook = ExcelApp.Workbooks.Add

Set ExcelWorksheet = ExcelWorkbook.Worksheets(1)


' Establece la cadena de conexión para una base de datos de Access .mdb

Set Conn = CreateObject("ADODB.Connection")

Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=RutaDeTuBaseDeDatos.mdb;Jet OLEDB:Database Password=TuContraseña" ' Cambia la ruta y la contraseña


' Abre la tabla de Access que deseas exportar

Set Recordset = CreateObject("ADODB.Recordset")

Recordset.Open "SELECT * FROM NombreDeTuTabla", Conn ' Cambia el nombre de tu tabla


' Copia los datos de la tabla de Access a Excel

For i = 0 To Recordset.Fields.Count - 1

    ExcelWorksheet.Cells(1, i + 1).Value = Recordset.Fields(i).Name

Next i


i = 2 ' Comienza desde la segunda fila en Excel

Recordset.MoveFirst

Do Until Recordset.EOF

    For j = 0 To Recordset.Fields.Count - 1

        ExcelWorksheet.Cells(i, j + 1).Value = Recordset.Fields(j).Value

    Next j

    i = i + 1

    Recordset.MoveNext

Loop


' Guarda el archivo de Excel

ExcelWorkbook.SaveAs "RutaDeTuArchivo.xls" ' Cambia la ruta y el nombre de tu archivo


' Cierra y libera los objetos

Recordset.Close

Set Recordset = Nothing


Conn.Close

Set Conn = Nothing


ExcelWorkbook.Close

ExcelApp.Quit

Set ExcelWorksheet = Nothing

Set ExcelWorkbook = Nothing

Set ExcelApp = Nothing

Asegúrate de cambiar "RutaDeTuBaseDeDatos.mdb" a la ruta de tu base de datos y "TuContraseña" a la contraseña de tu base de datos de Access.





User

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=RutaDeTuBaseDeDatos.mdb hacer para .accdb

ChatGPT

Para conectarte a una base de datos de Access en formato ".accdb" (Access 2007 y posteriores) en Visual Basic 6 utilizando la cadena de conexión OLEDB, debes utilizar un proveedor de datos diferente. En lugar de "Microsoft.Jet.OLEDB.4.0", debes usar el proveedor "Microsoft.ACE.OLEDB.12.0". Aquí tienes cómo hacerlo:


vb

Copy code

Dim ExcelApp As Object

Dim ExcelWorkbook As Object

Dim ExcelWorksheet As Object

Dim Conn As Object

Dim Recordset As Object

Dim i As Integer

Dim j As Integer


' Inicializa una instancia de Excel

Set ExcelApp = CreateObject("Excel.Application")

ExcelApp.Visible = True ' Establece esto en True si deseas que Excel sea visible


' Abre un archivo de Excel y agrega una hoja de trabajo

Set ExcelWorkbook = ExcelApp.Workbooks.Add

Set ExcelWorksheet = ExcelWorkbook.Worksheets(1)


' Establece la cadena de conexión para una base de datos de Access .accdb

Set Conn = CreateObject("ADODB.Connection")

Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=RutaDeTuBaseDeDatos.accdb;Jet OLEDB:Database Password=TuContraseña" ' Cambia la ruta y la contraseña


' Abre la tabla de Access que deseas exportar

Set Recordset = CreateObject("ADODB.Recordset")

Recordset.Open "SELECT * FROM NombreDeTuTabla", Conn ' Cambia el nombre de tu tabla


' Copia los datos de la tabla de Access a Excel

For i = 0 To Recordset.Fields.Count - 1

    ExcelWorksheet.Cells(1, i + 1).Value = Recordset.Fields(i).Name

Next i


i = 2 ' Comienza desde la segunda fila en Excel

Recordset.MoveFirst

Do Until Recordset.EOF

    For j = 0 To Recordset.Fields.Count - 1

        ExcelWorksheet.Cells(i, j + 1).Value = Recordset.Fields(j).Value

    Next j

    i = i + 1

    Recordset.MoveNext

Loop


' Guarda el archivo de Excel

ExcelWorkbook.SaveAs "RutaDeTuArchivo.xls" ' Cambia la ruta y el nombre de tu archivo


' Cierra y libera los objetos

Recordset.Close

Set Recordset = Nothing


Conn.Close

Set Conn = Nothing


ExcelWorkbook.Close

ExcelApp.Quit

Set ExcelWorksheet = Nothing

Set ExcelWorkbook = Nothing

Set ExcelApp = Nothing

Asegúrate de cambiar "RutaDeTuBaseDeDatos.accdb" a la ruta de tu base de datos ".accdb" y "TuContraseña" a la contraseña de tu base de datos de Access.





User

ExcelWorkbook.SaveAs "C:\base\archivoexp.xls"  como reescribir sobre el mismo archivo

ChatGPT

Para reescribir sobre el mismo archivo Excel en lugar de guardar como un archivo nuevo, simplemente proporciona la misma ruta completa en ExcelWorkbook.SaveAs. A continuación, te muestro cómo hacerlo:


vb

Copy code

ExcelWorkbook.SaveAs "C:\base\archivoexp.xls", 1

Al agregar , 1 como segundo argumento, le estás diciendo a Excel que sobrescriba el archivo existente en lugar de crear uno nuevo. Asegúrate de cambiar "C:\base\archivoexp.xls" a la ruta y el nombre del archivo que deseas reemplazar. Ten en cuenta que esto sobrescribirá el archivo sin previo aviso, por lo que ten cuidado al usar esta opción.





User

hacer Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=basedatos.accdb;Jet OLEDB:Database Password="   pero con   App.Path & "\basedatos.accdb"

ChatGPT

Puedes utilizar App.Path en Visual Basic 6 para obtener la ubicación del directorio donde se encuentra el archivo ejecutable de tu aplicación. Luego, puedes concatenar esta ubicación con el nombre de tu base de datos. Aquí tienes cómo hacerlo:


vb

Copy code

Dim databasePath As String

databasePath = App.Path & "\basedatos.accdb"


' Establece la cadena de conexión para una base de datos de Access .accdb

Set Conn = CreateObject("ADODB.Connection")

Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & databasePath & ";Jet OLEDB:Database Password=TuContraseña" ' Cambia "TuContraseña" si es necesario

En este código, App.Path proporciona la ubicación del directorio donde se encuentra el archivo ejecutable de tu aplicación, y luego se concatena con el nombre de la base de datos para formar la ruta completa. Asegúrate de que la base de datos "basedatos.accdb" esté en el mismo directorio que el archivo ejecutable de tu aplicación o ajusta la ruta según la ubicación real de tu base de datos.





User

como es el codigo para expoerte y no abra el excel exportado

ChatGPT

Si deseas exportar datos a un archivo de Excel sin abrirlo automáticamente después de la exportación, puedes agregar una línea de código para cerrar la aplicación de Excel. Aquí tienes un ejemplo de cómo hacerlo:


vb

Copy code

Dim ExcelApp As Object

Dim ExcelWorkbook As Object

Dim ExcelWorksheet As Object

Dim Conn As Object

Dim Recordset As Object

Dim i As Integer

Dim j As Integer


' Inicializa una instancia de Excel

Set ExcelApp = CreateObject("Excel.Application")

ExcelApp.Visible = False ' Establece esto en False para que Excel no sea visible


' Abre un archivo de Excel y agrega una hoja de trabajo

Set ExcelWorkbook = ExcelApp.Workbooks.Add

Set ExcelWorksheet = ExcelWorkbook.Worksheets(1)


' Establece la cadena de conexión para una base de datos de Access .accdb

Set Conn = CreateObject("ADODB.Connection")

Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=basedatos.accdb;Jet OLEDB:Database Password=TuContraseña" ' Cambia "TuContraseña" si es necesario


' Abre la tabla de Access que deseas exportar

Set Recordset = CreateObject("ADODB.Recordset")

Recordset.Open "SELECT * FROM NombreDeTuTabla", Conn ' Cambia el nombre de tu tabla


' Copia los datos de la tabla de Access a Excel

For i = 0 To Recordset.Fields.Count - 1

    ExcelWorksheet.Cells(1, i + 1).Value = Recordset.Fields(i).Name

Next i


i = 2 ' Comienza desde la segunda fila en Excel

Recordset.MoveFirst

Do Until Recordset.EOF

    For j = 0 To Recordset.Fields.Count - 1

        ExcelWorksheet.Cells(i, j + 1).Value = Recordset.Fields(j).Value

    Next j

    i = i + 1

    Recordset.MoveNext

Loop


' Guarda el archivo de Excel

ExcelWorkbook.SaveAs "RutaDeTuArchivo.xls" ' Cambia la ruta y el nombre de tu archivo


' Cierra y libera los objetos

Recordset.Close

Set Recordset = Nothing


Conn.Close

Set Conn = Nothing


ExcelWorkbook.Close

Set ExcelWorkbook = Nothing


ExcelApp.Quit

Set ExcelApp = Nothing

En este código, se establece ExcelApp.Visible en False para que Excel no sea visible durante la exportación. Luego, se cierra Excel al final del proceso con ExcelApp.Quit y se liberan los objetos.


Asegúrate de cambiar "RutaDeTuArchivo.xls" a la ruta y el nombre de archivo que desees.





User

como se evita que aparezca el cartel de confirmacion de sobreescribir

ChatGPT

Para evitar que aparezca el cuadro de diálogo de confirmación al sobrescribir un archivo en Excel, puedes establecer la propiedad DisplayAlerts del objeto Excel en False. Esto evitará que Excel muestre los mensajes de alerta, incluyendo el de confirmación de sobrescribir un archivo existente. Aquí tienes cómo hacerlo en tu código:


vb

Copy code

' Inicializa una instancia de Excel

Set ExcelApp = CreateObject("Excel.Application")

ExcelApp.Visible = False ' Establece esto en False para que Excel no sea visible


' Evita que se muestren alertas, incluyendo la confirmación de sobrescribir

ExcelApp.DisplayAlerts = False


' Resto del código aquí...


' Guarda el archivo de Excel

ExcelWorkbook.SaveAs "RutaDeTuArchivo.xls" ' Cambia la ruta y el nombre de tu archivo


' Habilita nuevamente los mensajes de alerta (opcional, si lo necesitas)

ExcelApp.DisplayAlerts = True


' Cierra y libera los objetos

' Resto del código aquí...


' Cierra y libera los objetos

Recordset.Close

Set Recordset = Nothing


Conn.Close

Set Conn = Nothing


ExcelWorkbook.Close

Set ExcelWorkbook = Nothing


ExcelApp.Quit

Set ExcelApp = Nothing

Asegúrate de habilitar nuevamente los mensajes de alerta (usando ExcelApp.DisplayAlerts = True) al final del proceso si necesitas que los mensajes de alerta estén activados nuevamente en tu aplicación de Excel.

Comentarios

Entradas populares de este blog

Como proteger una api json con php al pasar el parametro POST[id] de los ataques sql injection y xss

Copia de Seguridad de Archivo MS Access (.mdb) a Pendrive con VB6

NUMEROS SERIE DE DISCO RIGIDO Y PENDRIVER USB CON PHP