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.
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
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


0