Search This Blog

Saturday, 24 August 2013

Intercambiar datos entre Excel y Access







ActiveX Data Objects (ADO) es uno de los mecanismos que usan los programas de computadoras para comunicarse con las bases de datos, darles órdenes y obtener resultados de ellas.
Con ADO, un programa puede leer, insertar, editar, o borrar, la información contenida en diferentes áreas de almacenamiento dentro de la base de datos llamadas tablas. Además, se puede manipular la propia base de datos para crear nuevas áreas para el almacenamiento de información (tablas), como también alterar o eliminar las ya existentes, entre otras cosas.
Fue desarrollado por Microsoft y es usado en ambientes Windows por lenguajes de programación como Visual Basic, C++, Delphi entre otros, como también en la Web mediante el uso de Active Server Pages (ASP) y el lenguaje VBScript.
Un ejemplo muy simple de como intercambiar datos entre Excel y Access 2010 usando una conexión ADO y macros VBA.
El primer trozo de código escribe o transfiere datos desde Excel 2010 hacia Access 2010, desde las celdas “A1″ (para el nombre) y “B1″ (para el apellido) hacia la base de datos que lleva el nombre de “datos.accdb” con una sola tabla “tabla1″ y dos campos “nombre” y “apellido”, que se encuentran en la misma carpeta que nuestro archivo en Excel 2010.
Sub escribiraccess()
Dim cs As String
Dim sPath As String
Dim sql As String
Dim cn As ADODB.Connection
sPath = ThisWorkbook.Path & “\datos.accdb”
cs = “Provider=Microsoft.ACE.OLEDB.12.0;Data Source=” & sPath & “;Persist Security Info=False;”
Set cn = New ADODB.Connection
cn.Open cs
sql = “insert into tabla1 (nombre, apellido) values(‘” & Cells(1, 1).Value & “‘, ‘” & Cells(1, 2).Value & “‘)”
cn.Execute sql
cn.Close
Set cn = Nothing
End Sub
El segundo trozo de código transfiere datos desde Access 2010 hacia Excel 2010 previamente escritos con el código anterior y lo enviará a la celda “C1″.
Sub escribirexcel()
Dim cs As String
Dim sPath As String
Dim sql As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
sPath = ThisWorkbook.Path & “\datos.accdb”
cs = “Provider=Microsoft.ACE.OLEDB.12.0;Data Source=” & sPath & “;Persist Security Info=False;”
Set cn = New ADODB.Connection
cn.Open cs
Set rs = New ADODB.Recordset
With rs
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockOptimistic
End With
sql = “select * from tabla1″
rs.Open sql, cn
Range(“C1″).CopyFromRecordset rs
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
End Sub
Descargar ejemplo sobre Excel y Access 2010
Escrito por M. Vizcarra el 12/01/2012. Clasificado como Access, Excel
http://www.combito.com/?p=464

No comments:

Post a Comment