De Datagrid A Excel

  • Uploaded by: Ortzi
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View De Datagrid A Excel as PDF for free.

More details

  • Words: 597
  • Pages: 3
Para realizar el ejemplo colocar en un formulario un control Datagrid llamado Datagrid1. Luego desde el menú referencias marcar Activex Data Object para poder usar ADO Crear una base de datos Access llamada bd1.mdb. Dentro de esta crear una tabla llamada Tabla1 con algunos campos y registros. La base de datos debe estar en la carpeta donde está el proyecto de vb. Colocar un Libro vacío de Excel llamado Libro1.xls Por último agregar un Command1 que será el que ejecuta la función llamada Exportar_DataGrid. Esta función se le debe enviar como parámetro el control Datagrid y un segundo parámetro que especifica la cantidad de filas a exportar. Nota: En el ejemplo se exportan todas las filas, indicando la propiedad AproxCount que devuelve dicho número.

Código fuente del formulario: Texto planoCopiar código fuenteImprimir

1. 2. 3.

'*************************************************************************** '*

Controles

: Un Datagrid, un CommandButton y la referencia a ADO

'***************************************************************************

4. 5.

6. 7. 8.

'Variables para la base de datos Dim cnn As Connection Dim rs As Recordset

9.

10. 11. 12. 13.

'Variables para Excel Dim Obj_Excel As Object Dim Obj_Libro As Object Dim Obj_Hoja As Object

14. 15. 16.

17. Private

Sub exportar_Datagrid(Datagrid As Datagrid, n_Filas As Long)

18.

19.

On Error GoTo ErrSub

20.

21.

Dim i As Integer, j As Integer

22.

23. 24. 25. 26. 27.

If n_Filas = 0 Then MsgBox "No hay datos para exportar a excel": Exit Sub Else Set Obj_Excel = CreateObject("Excel.Application") Set Obj_Libro = Obj_Excel.Workbooks.Add(App.Path & "\libro1.xls")

28.

29. 30.

'Ponemos la aplicación excel visible Obj_Excel.Visible = True

31.

32. 33.

'Hoja activa Set Obj_Hoja = Obj_Excel.ActiveSheet

34.

35.

' Recorre el Datagrid iCol = 0

36.

37. 38. 39. 40.

For i = 0 To Datagrid.Columns.Count - 1 If Datagrid.Columns(i).Visible Then iCol = iCol + 1 'Caption de la columna Obj_Hoja.Cells(1, iCol) = Datagrid.Columns(i).Caption

41. 42.

43. 44.

For j = 0 To n_Filas - 1 'asigna el valor a la celda del Excel Obj_Hoja.Cells(j + 2, iCol) = _

45.

46. 47.

Datagrid.Columns(i).CellValue(Datagrid.GetBookmark(j)) Next

48.

49. 50.

End If Next

51.

52. 53. 54.

'Opcional : colocamos en negrita y de color rojo los enbezados en la hoja Obj_Hoja.Rows(1).Font.Bold = True Obj_Hoja.Rows(1).Font.Color = vbRed

55.

56. 57. 58.

'Autoajustamos Obj_Hoja.Columns("A:Z").AutoFit End If

59.

60. 61. 62. 63.

'Eliminamos las variables de objeto excel Set Obj_Hoja = Nothing Set Obj_Libro = Nothing Set Obj_Excel = Nothing

64.

65. Exit

Sub

66.

67. 'Error 68. ErrSub: 69.

70. 71.

MsgBox Err.Description, vbCritical On Error Resume Next

72.

73. 74. 75.

Set Obj_Hoja = Nothing Set Obj_Libro = Nothing Set Obj_Excel = Nothing

76.

77. End

Sub

78.

79. 'Ejecutamos la función que exporta los datos del datagrid a excel 80. Private Sub Command1_Click() 81. Call exportar_Datagrid(DataGrid1, DataGrid1.ApproxCount) 82. End Sub 83.

84. Private

Sub Form_Load()

85.

86. 87.

'Creamos un nuevo objeto conexión Set cnn = New Connection

88.

89. 90.

'Abrimos la base de datos. ( Cambiar la ruta ) cnn.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=" & App.Path & "\bd1.mdb"

91.

92. 93.

'Creamos un nuevo objeto Recordset Set rs = New Recordset

94.

95. 96.

'Llenamos el recordset ( ESPECIFICAR LA CONSULTA SQL ) rs.Open "Select * From tabla1", cnn, adOpenStatic, adLockOptimistic

97.

98. 99.

'Llenemos el datagrid con el recordset anterior Set DataGrid1.DataSource = rs

100.

101. 102.

'Eliminamos la variable Set cnn = Nothing

103.

104.

Command1.Caption = " Exportar datagrid a Excel "

105.

106.End

Sub

107.

108.Private

Sub Form_Unload(Cancel As Integer)

109.

110. 111. 112.

113. 114.

On Error Resume Next rs.Close cnn.Close Set rs = Nothing Set cnn = Nothing

115.

116.End

Sub

Related Documents

De Datagrid A Excel
May 2020 5
Datagrid
April 2020 13
Datagrid
November 2019 14
Color Datagrid
October 2019 16
Datagrid Web Control
November 2019 13
Excel De La A A La Z
November 2019 37

More Documents from ""