Programación General > Visual Basic 6.0 e inferiores
Exportar Datos Desde Access A Excel
(1/1)
sabrina77:
Hola
tengo que hacer una aplicacion que permita exprtar datos de una base de datos a una hoja de excel. Ya he trabajado con un componente que me permite crear hojas de excel pero lo que no se es si para pasar de una base de datos a excel hay alguna forma mas inmediata o tengo que ir recorriendo la tabla de la base de datos e ir escribiendo cada dato en excel.
muchas gracias :)
Brroz:
Hola Sabrina77.
Puedes hacer algo de este estilo:
--- Código: Text --- Dim objDb as Object Set objDb = GetObject("C:\Ruta\BaseDatos.mdb") objDb.DoCmd.TransferSpreadsheet 1, 8 _ , TablaOCosulta, ArchivoXls, True 'acExport= 1 , acSpreadsheetTypeExcel97 = 8 objDb.Quit Set objDb = Nothing
Suerte.
sabrina77:
hola Brroz
estoy poniendo lo siguiente
Dim objDb As Object
Set objDb = GetObject("C:\ventas.mdb")
objDb.DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "tablaventas", App.Path & "\ventas.xsl", True
objDb.Quit
Set objDb = Nothing
pero me da el siguiente error: Error '3027': No se puede actualizar.Base de datos u objeto de solo lectura.
La base de datos no es de solo lectura, pero en el formulario estoy utilizando un dbrid para cargar datos de la misma tabla que luego es la que intento copiar a un archivo de excel. ¿puede ser este el problema?
Cuando intento copiar los datos a excel todavia no he abierto ninguna conexion con la base de datos, pero lo que no se es si al usar el dbgrid ya se ha abierto la conexion de alguna forma y es por eso por lo que me da ese error.
Muchas gracias
Brroz:
Hola sabrina77.
No sé si habrás tenido en cuenta lo siguiente.
Estás utilizando como parámetros dos expresiones acExport y acSpreadsheetTypeExcel9 que puede ser que no tengan el valor que se debería esperar. Me explico: estas dos expresiones son dos constantes (con valor 1 y 8 respectivamente) que están definidas por el access, por lo que si no tienes una referencia a access, vb tomará estas dos palabras como variables, que si no son inicializadas a ningún valor, tendrán valor 0 (si son numéricas) u otro valor dependiendo del tipo de datos (si no las has declarado, presupongo que no has utilizado la instrucción Option Explicit y si no has utilizado ninguna del tipo DEFxxx A-Z, pues serán variant).
Me imagino que tu problema es algo de esto, ya que para exportar una tabla no se debería necesitar escribir en la base de datos.
Si esto es como te cuento, entonces asigna los valores que le corresponderían a las expresiones, o sencillamente haz lo siguiente:
objDb.DoCmd.TransferSpreadsheet 1, 8, "tablaventas", App.Path & "\ventas.xsl", True
Suerte
sabrina77:
Hola Brroz
No se que es lo que debe pasar por que he puesto lo que me has dicho y esto sigue dando el mismo error que te dije la ultima vez.
Muchisimas gracias de todas formas
Navegación
Ir a la versión completa