Excel - Consulta sobre conexión tabla dinamica de Excel a acces

   
Vista:

Consulta sobre conexión tabla dinamica de Excel a acces

Publicado por Sebastian (17 intervenciones) el 01/02/2013 19:12:22
Buenos dias.

Por favor, agradecera mucho que puedan ayudarme con este inconveniente que tengo cuando quiero actualizar mis tablas de excel con datos de la tabla de acces.

Veran, tengo un archivo que tiene 2 hojas que en cada una de ellas lleva una tabla con datos de fuente externo (osea una tabla de acces), asu vez tiene una tercera hoja en la que descargo los registros de ua tabla.

el codigo que tengo hace que primero borre los regsitros ya existentes en la tercera hoja para volver a descargarlos y luego actualiza las tablas de la primera y segunda hoja; pero lo que ahora me esta saliendo es un mensaje donde me solicita ESPECIFICAR LA INICIALIZACION DE OLEDB DEL MOTOR DE BASE DE DATOS.

DONDE ME SALE UNA VENTA CON ESTOS DATOS:
Origen de datos : ruta y nombre de mi BDD de acess
Nombre de usuario: Admin
contraseña : vacio
cadena de proveedor : jet oledbd:bypass userinfo validation
modo de apertura : DB_mode_readwrite

lo que yo estoy asumiendo que pueda estar pasando es que esta perdiendo las 2 primeras hojas debido que primero estoy haciendo una conexion para la 3era hoja.

gracias por sus respuestas



''''''''''''''''''''''''''''''''' Inicio - Conexion de excel a acces

Sheets("Hoja_datos").Select
Cells.Select
Selection.ClearContents

'Sub Importar_Access()

'dimensiones
Dim datConnection As ADODB.Connection
Dim recSet As ADODB.Recordset
Dim strDB, strSQL As String
Dim strTabla As String
Dim lngTablas As Long
Dim i As Long

'elegir uno de estas dos rutas al archivo Access
'strDB = ThisWorkbook.Path & "\" & "db.mdb"
strDB = "C:\Reportes\BDD_prueba.accdb" 'si en otra carpeta

'nombre de la tabla del archivo Access
strTabla = "Tabla_1"

'crear la conexión
Set datConnection = New ADODB.Connection
Set recSet = New ADODB.Recordset

'elegir una de las conexiones para acces 2003 o 2007
'datConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _

datConnection.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source =" & strDB & ";"

'consulta SQL
strSQL = "SELECT * FROM " & strTabla & ""
recSet.Open strSQL, datConnection
'copiar datos a la hoja
Sheets("Hoja_datos").Select

ActiveSheet.Cells(2, 1).CopyFromRecordset recSet

'copiar rótulos
lngCampos = recSet.Fields.Count
For i = 0 To lngCampos - 1
ActiveSheet.Cells(1, i + 1).Value = recSet.Fields(i).Name
Next

'desconectar
recSet.Close: Set recSet = Nothing
datConnection.Close: Set datConnection = Nothing

'End Sub
''''''''''''''''''''''''''''''''' Fin - Conexion de excel a acces
'actualizacion de todas las tablas
For i = 1 To Sheets.Count
Sheets(i).Select
For Each PivotTable In ActiveSheet.PivotTables
PivotTable.RefreshTable
'fecha y tiempo de ultima actualizacion
Sheets(i).Range("a1") = " Ultima actualización: " & Date & " " & Time
Next PivotTable
Next i


' message box
MsgBox "Todas las hojas actualizadas"
'guardar libro
ActiveWorkbook.Save
End If
End If
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder