Excel - MACRO volcar consulta Access en Excel

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 11 puestos en Excel (en relación al último mes)
Gráfica de Excel

MACRO volcar consulta Access en Excel

Publicado por Álvaro (3 intervenciones) el 19/04/2018 14:06:04
Buenas tardes,

Buscando por internet me encontré con este código que permite copiar una consulta de un fichero Access a Excel.

En una de las líneas me da error. Sinceramente se de programación pero lo básico sin llegar a entender muy bien los objetos.

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Sub Consulta_Access()
'
' CopiaConsulta Macro
' Copia las consultas de Acces en las 4 pestañas <1000, <10000, >10000 y OBRA=""
'
 
'
 
 
 
'Paso 1: Declarar Variables
 
Dim MyDatabase As DAO.database
 
'MyDatabase: Expone la base de datos de Access por medio de la DAO Object Library
 
Dim MyQueryDef As DAO.QueryDef
 
'MyQueryDef: Sirve como una variable de almacenamiento para contener la consulta objetivo.
 
Dim MyRecordset As DAO.Recordset
 
'MyRecordset: Guarda los resultados de la base de datos.
 
Dim i As Integer
 
'i: Se utiliza para añadir titulos a las columnas
 
'Paso 2: Identificar la base de datos y la consulta.
 
'Se identifica la base de datos que contiene la consulta requerida asi como la consulta que correrá el programa.
 
'Al haberle asignado a QueryDef una consulta le permite al usuario abrir la consulta en la memoria.
 
'Notese que para ejecutar la macro se debe colocar la ruta correspondiente del archivo en access para el cual se desea obtener la consulta, asi como tambien el nombre de la consulta.
 
Set MyDatabase = DBEngine.OpenDatabase("C:\Prueba.accdb")
 
Set MyQueryDef = MyDatabase.QueryDefs("Obras<1000")
 
'Paso 3: Abrir la consulta. Los resultados de la consulta son archivadas dentro de MyRecordset.
 
'Una vez que se encuentren en esa variable, se pueden exportar a Excel
 
Set MyRecordset = MyQueryDef.OpenRecordset
 
 
'Paso 4: Deja en blanco la hoja de calculo.
 
Sheets("<1000").Select
 
ActiveSheet.Range("A2:K10000").ClearContents
 
 
 
'Paso 5: Se copian los datos a Excel, para este caso a la celda “E20”
 
ActiveSheet.Range("A2").CopyFromRecordset MyRecordset
 
 
 
'Paso 6: Añadir títulos a las columnas
 
'For i = 1 To MyRecordset.Fields.Count
 
'ActiveSheet.Cells(6, i).Value = MyRecordset.Fields(i – 1).Name
 
    'Next i
 
'End Sub
 
End Sub

Me da error justo antes del paso 4 "Set MyRecordset = MyQueryDef.OpenRecordset".
Me indica error "3085" en tiempo de ejecución "la expresión "NZ" no está definida en la expresión"


Vamos que empieza el programa a realizar la consulta pero después da el error.

Muchas gracias
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
Imágen de perfil de Abraham Valencia
Val: 309
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

MACRO volcar consulta Access en Excel

Publicado por Abraham Valencia (112 intervenciones) el 19/04/2018 17:03:45
Hola

Para no estar adivinando, lo mejor es que muestres la macro exacta que estás usando, una captura de pantalla del error (porque tal cual lo has puesto es medio raro y no coincide con la macro) ademas de indicar con exactitud la línea de tu macro que marca el error.

Abraham Valencia
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
sin imagen de perfil
Val: 4
Ha aumentado su posición en 11 puestos en Excel (en relación al último mes)
Gráfica de Excel

MACRO volcar consulta Access en Excel

Publicado por Álvaro (3 intervenciones) el 20/04/2018 09:52:57
Error

Para facilitaros la información voy a simplificar el código quitando los comentarios. La línea que está marcada en negrita es la que genera el error.

La consulta en Access funciona sin problema. La idea es que se copie y pegue en la hoja de cálculo excel. La macro la ejecuto en excel al apretar un botón que tiene el código que copio a continuación.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Consulta_Access()
 
Dim MyDatabase As DAO.database
 
Dim MyQueryDef As DAO.QueryDef
 
Dim MyRecordset As DAO.Recordset
 
Set MyDatabase = DBEngine.OpenDatabase("C:\Prueba.accdb")
 
Set MyQueryDef = MyDatabase.QueryDefs("Obras<1000")
 
Set MyRecordset = MyQueryDef.OpenRecordset
 
Sheets("<1000").Select
 
ActiveSheet.Range("A2:K10000").ClearContents
 
ActiveSheet.Range("A2").CopyFromRecordset MyRecordset
 
End Sub

Tengo activados “Microsoft Access 14 Object Library” y Microsoft DAO 3.6 Object Library
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
sin imagen de perfil
Val: 92
Ha aumentado 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

MACRO volcar consulta Access en Excel

Publicado por Miguel (55 intervenciones) el 19/04/2018 18:54:09
Me gustaría poder ayudarte pero ayudame a entenderte.
En mi caso he podido traer datos a excel, desde base de datos de access, sqlite e incluso desde access llevar data de excel.
Ojala pueda ayudarte en lo que necesitas
Hace poco hice algo asi y en access me mostraba sin problemas el resultado de las consultas pero cuando la ejecutaba desde excel, solo me traía un determinado nro de registros y el problema era que en mi consulta de access en un determinado campo calculado había un #error, se truncaba a partir de allí los registros. Tuve que hacer uso de NZ o asignar valores predeterminados según sea el caso y luego de eso bajaba todos los registros,

No se cual sea tu caso pero si me explicas mas o das un pequeño ejemplo te podría ayudar
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
sin imagen de perfil
Val: 4
Ha aumentado su posición en 11 puestos en Excel (en relación al último mes)
Gráfica de Excel

MACRO volcar consulta Access en Excel

Publicado por Álvaro (3 intervenciones) el 23/04/2018 07:28:27
He contestado más arriba, a ver si esa información te puede ser útil para ayudar. Lo que me gustaría hacer es que se copiara la consulta en la hoja de cálculo excel. La macro la ejecuto en excel al apretar un botón que tiene el código que he adjuntado más arriba ya simplificado.
Muchas gracias
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