Access - Error VBA - Automatizar Importación de Excel a Access

 
Vista:
sin imagen de perfil

Error VBA - Automatizar Importación de Excel a Access

Publicado por Jimmy Alberto (23 intervenciones) el 24/07/2013 21:40:07
Foreros buenas tardes

Se me presenta el siguiente Problema, al querer automatizar la importación de datos desde una hoja de Excel, al correr esta rutina (Basada en una que encontré en internet) me genera un error -2147467259 (80004005) que la base de datos está en un estado que impide que sea abierta o bloqueada. y marca la linea (.open); cabe anotar que estoy trabajando sobre MS Access 2010. Si tienen alguna sugerencia o solución muchas Gracias de antemano.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Dim cnnActiva As ADODB.Connection
        Dim sTablaOrigen As String, sTablaDestino As String
        Dim sConnect As String, sSQL As String
 
        sTablaDestino = "[TH_WorkSheetMT]"
        sTablaOrigen = "[TH_WorkSheetMT$A2:T2400]"
        sConnect = "[Excel 8.0;HDR=Yes;DATABASE=T:\TH Project West\BD_West_Materials.xls]." & sTablaOrigen
 
        ' Construimos la consulta SQL
        sSQL = "INSERT INTO " & sTablaDestino & " SELECT * FROM " & sConnect
 
        ' Conexión con tu base de datos Accesss
        Set cnnActiva = New ADODB.Connection
        With cnnActiva
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Dell\Documents\Programador\TH Project West\TH Project West.accdb;"
        .Open
 
         'Añadimos los registros
        .Execute sSQL
        End With
        Set cnnActiva = Nothing
        cnnActiva.Close


Jimmy Alberto Pulido
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
sin imagen de perfil

Error VBA - Automatizar Importación de Excel a Access

Publicado por Jimmy Alberto (23 intervenciones) el 24/07/2013 22:39:23
Bueno Foreros, después de darle vueltas a ese código logré que me funcionara este. Ojo este es para Access 2010.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
   'Importa la tabla BD_West_Materials, Maestro de Productos
    Dim sTablaOrigen As String
    Dim sTablaDestino As String
    Dim sConnect As String
    Dim sSQL As String
    Dim cnnActiva As ADODB.Connection
    Dim sFichero As String
 
 
    sTablaDestino = "[TH_WorkSheetMT]"   'Este es el nombre de la tabla que debe crear en access
    sFichero = "T:\TH Project West\BD_West_Materials.xls"     ' la ubicación del archivo de excel
 
    'Establezco la conexión con la base de datos de Access, la cual será la base de datos “Activa”
    Set cnnActiva = New ADODB.Connection
    cnnActiva.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Dell\Documents\Programador\TH Project West\TH Project West.accdb;"
 
    'Rango que quiero importar de la hoja Sheet1
    sTablaOrigen = "[TH_WorkSheetMT$A1:T2400]"   'TH_WorkSheetMT es el nombre de mi hoja de excel
 
    'Importo la tabla a la base de datos “Activa”
    sConnect = "'" & sFichero & "' 'Excel 8.0;HDR=Yes;'"
    sSQL = "SELECT * INTO " & sTablaDestino & " FROM " & sTablaOrigen & " IN " & sConnect
    cnnActiva.Execute sSQL
 
    'Cierro la conexión
    cnnActiva.Close


Ahí se los dejo, de esta forma pueden importar tablas desde Excel a Access sin emplear la herramienta de importación.

Buena suerte; si alguien tiene un código VBA para agregar datos de una hoja de excel a una tabla existente en Access se lo agradezco; esa parte no la he logrado hacer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar