Problemas al exportar a excel
Publicado por CyRuS (33 intervenciones) el 02/10/2006 18:19:26
Yo tengo un código que me exporta los datos de una tabla de access a excel.
Public Sub CrearExcel()
Dim AppExcel As Object
Const xlNormal As Long = -4143
nombre = InputBox("¿ Con qué NOMBRE desea guardar el archivo excel ?", "Exportar a Excel")
Set AppExcel = CreateObject("Excel.Application")
With AppExcel
'Creo 1 librito
.SheetsInNewWorkbook = 1
.Visible = False
'Se crea el Libro de Excel
.Workbooks.Add
'Se guarda el Libro de Excel
.ActiveWorkbook.SaveAs "C:\Access\" & nombre & ".xls", xlNormal, "", "", False, False
AppExcel.Quit
End With
DoCmd.TransferSpreadsheet acExport, 8, "ListaAntigüa", "C:\Access\" & nombre & ".xls", False, ""
End Sub
Pero tiene una serie de problemas.
1º) Al exportar, Excel crea automáticamente otro librito con el nombre de mi tabla de Access (ListaAntigüa), en vez de usar el librito ese que le he creado. (si no le creo el librito, me da error). ¿ no puedo hacer que no me cree ese librito nº1?
2º) Con datos ya exportados en ese excel, si le vuelvo a dar a exportar, me sobrescribe todas las filas, en vez de copiarme las filas a partir de la última. Leyendo otros temas he visto esto:
'Aqui pones la celda desde donde comienzan tus datos, Ejm: "B6"
.Range("A1").Select
'Con esta funcion se mueve a la ultima fila q contiene datos
'Es igual q presionar en Excel (Fin + Flecha Abajo)
.Selection.End(xlDown).Select
Fila = .ActiveCell.Row + 1
'.Cells(Fila, 1) = Text1.Text
'.Cells(Fila, 2) = Text2.Text
Sin embargo, yo eso de TextBox no tengo. ¿cómo hago esto?
Public Sub CrearExcel()
Dim AppExcel As Object
Const xlNormal As Long = -4143
nombre = InputBox("¿ Con qué NOMBRE desea guardar el archivo excel ?", "Exportar a Excel")
Set AppExcel = CreateObject("Excel.Application")
With AppExcel
'Creo 1 librito
.SheetsInNewWorkbook = 1
.Visible = False
'Se crea el Libro de Excel
.Workbooks.Add
'Se guarda el Libro de Excel
.ActiveWorkbook.SaveAs "C:\Access\" & nombre & ".xls", xlNormal, "", "", False, False
AppExcel.Quit
End With
DoCmd.TransferSpreadsheet acExport, 8, "ListaAntigüa", "C:\Access\" & nombre & ".xls", False, ""
End Sub
Pero tiene una serie de problemas.
1º) Al exportar, Excel crea automáticamente otro librito con el nombre de mi tabla de Access (ListaAntigüa), en vez de usar el librito ese que le he creado. (si no le creo el librito, me da error). ¿ no puedo hacer que no me cree ese librito nº1?
2º) Con datos ya exportados en ese excel, si le vuelvo a dar a exportar, me sobrescribe todas las filas, en vez de copiarme las filas a partir de la última. Leyendo otros temas he visto esto:
'Aqui pones la celda desde donde comienzan tus datos, Ejm: "B6"
.Range("A1").Select
'Con esta funcion se mueve a la ultima fila q contiene datos
'Es igual q presionar en Excel (Fin + Flecha Abajo)
.Selection.End(xlDown).Select
Fila = .ActiveCell.Row + 1
'.Cells(Fila, 1) = Text1.Text
'.Cells(Fila, 2) = Text2.Text
Sin embargo, yo eso de TextBox no tengo. ¿cómo hago esto?
Valora esta pregunta


0