viernes, marzo 19, 2010
S1B Conectar Excel con Visual Basic
Por Ruben Santana
Como conectar Visual Basic con Excel por ADO.
Mostrar datos de Excel en un DataGrid
Este ejemplo muestra como leer mediante una conexión ADO una hoja de Excel y poder mostrar dichos datos ( previamente almacenados en un recordset ) en un control DataGrid
DataGrid con los datos del Excel
Colocar los siguiente controles como está en la imagen:
* Un control Text1 para colocar el Path del libro
* Un Text2 y un Text3 para especificar el Rango de los datos (opcional, si no se especifica se lee toda la hoja)
* Un Text4 para el nombre de la hoja
* Un CommandButton para leer los datos
* Un control DataGrid
* Especificar desde el menú referencias Microsoft Activex Data Objects - Ado
Código en un formulario:
Texto planoImprimir
1. Option Explicit
2. Public Sub Importar_Excel( _
3. Libro As String, _
4. hoja As String, _
5. Optional rango As String = "")
6.
7. Dim conexion As ADODB.Connection, rs As ADODB.Recordset
8.
9. Set conexion = New ADODB.Connection
10.
11. conexion.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
12. "Data Source=" & Libro & _
13. ";Extended Properties=""Excel 8.0;HDR=Yes;"""
14.
15.
16. ' Nuevo recordset
17. Set rs = New ADODB.Recordset
18.
19. With rs
20. .CursorLocation = adUseClient
21. .CursorType = adOpenStatic
22. .LockType = adLockOptimistic
23. End With
24.
25. If rango <> ":" Then
26. hoja = hoja & "$" & rango
27. End If
28.
29. rs.Open "SELECT * FROM [" & hoja & "]", conexion, , , adCmdText
30.
31. ' Mostramos los datos en el datagrid
32. Set DataGrid1.DataSource = rs
33.
34.
35. End Sub
36.
37.
38.
39. Private Sub Command1_Click()
40. Dim rango As String, hoja As String, ruta As String
41.
42. ruta = Text1 'ruta del archivo excel
43. rango = Text2 & ":" & Text3 'Rango de datos (opcional)
44. hoja = Text4 'Nombre de la hoja
45.
46. Importar_Excel ruta, hoja, rango
47.
48. End Sub
Y no olvidarse de ir al Menu Herramientas, Componentes y agregar OLE Objets, y Excel.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario