Referencia para usar excel 2000
Hola a todos, tengo q exportar mis datos q se encuentran en una BD en access 2000 a excel, lo q sucede es que tengo un codigo q me ayuda a trabajarlo con acces 97 utilizando la sgte referencia... Microsoft Excel 9.0 Object Library, he intentado convertir mi BD a access 97 pero me sale errores de tipo de dato, entonces quisiera saber como puedo hacer para trabajar ese codigo con access 2000... muchas gracias....
Saludos
Catty
Saludos
Catty
Hola,
en lugar de agregar la refrencia, hazlo asÃ
Dim objExcel as Object
Set objExcel = CreateObject("Excel.Application")
SAlu2
sdemingo
en lugar de agregar la refrencia, hazlo asÃ
Dim objExcel as Object
Set objExcel = CreateObject("Excel.Application")
SAlu2
sdemingo
Hola sdemingo, una consulta crees q te pueda enviar el codigo q tengo y me puedes decir como puedo usarlo con access 2000... te lo agradeceria muchisimo... por favor en caso q puedas, me das tu correo???
Saludos
Catty
Saludos
Catty
Hola,
mejor pon aquà en el foro tu código por si el problema le afecta a alguien más que pueda beneficiarse también de la solución que te puedan brindar.
Salu2
sdemingo
mejor pon aquà en el foro tu código por si el problema le afecta a alguien más que pueda beneficiarse también de la solución que te puedan brindar.
Salu2
sdemingo
Modulo
Public objExcel As Excel.Application
Public Function Inicio_Excel() As Boolean
Dim I As Integer
Dim J As Integer
Set objExcel = New Excel.Application
objExcel.Visible = True 'lo hacemos visible
objExcel.SheetsInNewWorkbook = 1 'decimos cuantas hojas queremos en el nuevo documento
objExcel.Workbooks.Add ' añadimos el objeto al workbook
End Function
Public Function Formato_Excel(Num_Campos As Integer, Nombre_Campos() As String) As Boolean
With objExcel.ActiveSheet
'Formato de las celdas de los titulos
.Range(.Cells(3, 1), .Cells(3, Num_Campos)).Borders.LineStyle = xlContinuous
.Range(.Cells(3, 1), .Cells(3, 8)).Font.Bold = True
For I = 1 To Num_Campos - 1 Step 1
.Cells(3, I) = Nombre_Campos(I)
Next I
'hasta aki pa colocar los titulos
'a partir de aki ta claro que es pa darle el ancho a las celdas ;-)
.Columns("A").ColumnWidth = 25
.Columns("B").ColumnWidth = 35
.Columns("C").ColumnWidth = 30
.Columns("D").ColumnWidth = 20
.Columns("E").ColumnWidth = 15
.Columns("F").ColumnWidth = 15
.Columns("G").ColumnWidth = 10
.Columns("H").ColumnWidth = 10
End With
End Function
Formulario
'Recordar que debes añadir la referencia llamada Microsoft Excel 9.0 Object Library
'SOLO SE PUEDE TRABAJAR CON BASES DE ACCESS 97
Option Explicit
Dim H As Integer
Dim V As Integer
Private Sub Command1_Click()
DataTabla.DatabaseName = App.Path & "db1_97.mdb"
DataTabla.RecordSource = "clientes"
DataTabla.Refresh
If Combo1.ListIndex = 0 Then
Dim Heading(8) As String 'aki vamos a guardar los nombres de los campos que despues pasamos a la funcion
Heading(0) = "Nombre"
Heading(1) = "Apellidos"
Heading(2) = "Direccion"
Heading(3) = "Poblacion"
Heading(4) = "Provincia"
Heading(5) = "Pais"
Heading(6) = "Telefono"
Heading(7) = "DNI"
Call Inicio_Excel 'Llamamos a la funcion que abre el workbook en excel
Call Formato_Excel(8, Heading()) 'llamamos a la funcion que da el formato al nuevo workbook
V = 5
H = 1
Do While Not DataTabla.Recordset.EOF 'esto nos sirve pa leer los datos desde
'la tabla de access para despues colocarlos en las celdas correspondientes
With DataTabla.Recordset
objExcel.ActiveSheet.Cells(V, H) = .Fields!nombre
objExcel.ActiveSheet.Cells(V, H + 1) = .Fields!apellidos
objExcel.ActiveSheet.Cells(V, H + 2) = .Fields!direccion
objExcel.ActiveSheet.Cells(V, H + 3) = .Fields!poblacion
objExcel.ActiveSheet.Cells(V, H + 4) = .Fields!provincia
objExcel.ActiveSheet.Cells(V, H + 5) = .Fields!pais
objExcel.ActiveSheet.Cells(V, H + 6) = .Fields!telefono
objExcel.ActiveSheet.Cells(V, H + 7) = .Fields!dni
V = V + 1
.MoveNext
End With
Loop
Set objExcel = Nothing 'una vez hemos terminado descargamos el objeto
End If
End Sub
Private Sub Form_Load()
'escribimos las opciones en el combo
Combo1.AddItem "Clientes", 0
Combo1.AddItem "Facturas", 1
Combo1.AddItem "Ocupacion", 2
End Sub
---------------------------------------
Este es el codigo original q encontre en una pagina web, no recuerdo la direccion, quiero aplicarlo a mi proyecto... peor este codigo solo trabaja con BD en access 97 y la mia esta en 2000, he tratado e hacerlo en 2000 pero sale error, si alguien supiera como hacerlo trabajar con BD en access 2000 se lo agradeceria muchisimo
Saludos
Catty
Public objExcel As Excel.Application
Public Function Inicio_Excel() As Boolean
Dim I As Integer
Dim J As Integer
Set objExcel = New Excel.Application
objExcel.Visible = True 'lo hacemos visible
objExcel.SheetsInNewWorkbook = 1 'decimos cuantas hojas queremos en el nuevo documento
objExcel.Workbooks.Add ' añadimos el objeto al workbook
End Function
Public Function Formato_Excel(Num_Campos As Integer, Nombre_Campos() As String) As Boolean
With objExcel.ActiveSheet
'Formato de las celdas de los titulos
.Range(.Cells(3, 1), .Cells(3, Num_Campos)).Borders.LineStyle = xlContinuous
.Range(.Cells(3, 1), .Cells(3, 8)).Font.Bold = True
For I = 1 To Num_Campos - 1 Step 1
.Cells(3, I) = Nombre_Campos(I)
Next I
'hasta aki pa colocar los titulos
'a partir de aki ta claro que es pa darle el ancho a las celdas ;-)
.Columns("A").ColumnWidth = 25
.Columns("B").ColumnWidth = 35
.Columns("C").ColumnWidth = 30
.Columns("D").ColumnWidth = 20
.Columns("E").ColumnWidth = 15
.Columns("F").ColumnWidth = 15
.Columns("G").ColumnWidth = 10
.Columns("H").ColumnWidth = 10
End With
End Function
Formulario
'Recordar que debes añadir la referencia llamada Microsoft Excel 9.0 Object Library
'SOLO SE PUEDE TRABAJAR CON BASES DE ACCESS 97
Option Explicit
Dim H As Integer
Dim V As Integer
Private Sub Command1_Click()
DataTabla.DatabaseName = App.Path & "db1_97.mdb"
DataTabla.RecordSource = "clientes"
DataTabla.Refresh
If Combo1.ListIndex = 0 Then
Dim Heading(8) As String 'aki vamos a guardar los nombres de los campos que despues pasamos a la funcion
Heading(0) = "Nombre"
Heading(1) = "Apellidos"
Heading(2) = "Direccion"
Heading(3) = "Poblacion"
Heading(4) = "Provincia"
Heading(5) = "Pais"
Heading(6) = "Telefono"
Heading(7) = "DNI"
Call Inicio_Excel 'Llamamos a la funcion que abre el workbook en excel
Call Formato_Excel(8, Heading()) 'llamamos a la funcion que da el formato al nuevo workbook
V = 5
H = 1
Do While Not DataTabla.Recordset.EOF 'esto nos sirve pa leer los datos desde
'la tabla de access para despues colocarlos en las celdas correspondientes
With DataTabla.Recordset
objExcel.ActiveSheet.Cells(V, H) = .Fields!nombre
objExcel.ActiveSheet.Cells(V, H + 1) = .Fields!apellidos
objExcel.ActiveSheet.Cells(V, H + 2) = .Fields!direccion
objExcel.ActiveSheet.Cells(V, H + 3) = .Fields!poblacion
objExcel.ActiveSheet.Cells(V, H + 4) = .Fields!provincia
objExcel.ActiveSheet.Cells(V, H + 5) = .Fields!pais
objExcel.ActiveSheet.Cells(V, H + 6) = .Fields!telefono
objExcel.ActiveSheet.Cells(V, H + 7) = .Fields!dni
V = V + 1
.MoveNext
End With
Loop
Set objExcel = Nothing 'una vez hemos terminado descargamos el objeto
End If
End Sub
Private Sub Form_Load()
'escribimos las opciones en el combo
Combo1.AddItem "Clientes", 0
Combo1.AddItem "Facturas", 1
Combo1.AddItem "Ocupacion", 2
End Sub
---------------------------------------
Este es el codigo original q encontre en una pagina web, no recuerdo la direccion, quiero aplicarlo a mi proyecto... peor este codigo solo trabaja con BD en access 97 y la mia esta en 2000, he tratado e hacerlo en 2000 pero sale error, si alguien supiera como hacerlo trabajar con BD en access 2000 se lo agradeceria muchisimo
Saludos
Catty
Trata de sustituir estas lÃneas de código
Public objExcel As Excel.Application
Set objExcel = New Excel.Application
por estas otras......
Public objExcel As Object
Set objExcel = CreateObject("Excel.Application")
Salu2
sdemingo
Public objExcel As Excel.Application
Set objExcel = New Excel.Application
por estas otras......
Public objExcel As Object
Set objExcel = CreateObject("Excel.Application")
Salu2
sdemingo
Ya lo hice, pero me sigue saliendo error al conectar la BD en access 2000, funciona normal con la BD en access 97....
Necesitas instalarte el MDAC, el Service Pack 5 para VB6 y asegurarte de tener instalado el motor de base de datos Microsoft.Jet.OLEDB.4.0
salu2
sdemingo
salu2
sdemingo
sale que no encuentra la BD dentro de la carpeta, sin embargo la BD esta ubicada alli... como hago para resolver este problema????
ya me puedo conectar con mi BD en access 2000, lo q sucede es q al poner el codigo donde lee los datos q se vana a agregar a la hoja de calculo sale error: variable de tipo object o la variable del bloque with no esta definida, y es en la parte del datatabla.recorset.recordcount... no entiendo xq... si sabes como puedo solucionarlo ... te agradesco mucho....
Saludos
Catty
Saludos
Catty
si lo tengo, toda mi aplicacion trabaja con BD en access 2000, y el motor de datos es Microsoft.Jet.OLEDB.4.0
sbes como usar la propiedad... datatabla.recordset???
si tuvieras algun ejemplo te lo agradeceria mucho.-...
saludos
Catty
sbes como usar la propiedad... datatabla.recordset???
si tuvieras algun ejemplo te lo agradeceria mucho.-...
saludos
Catty