Access - Exportacion a Excel sin nombre de campo

 
Vista:

Exportacion a Excel sin nombre de campo

Publicado por Gumer (2 intervenciones) el 19/07/2018 11:52:59
Buenos días,
A ver si alguien puede ayudarme con un problemilla.
Tengo un formulario en Access que filtra según varios controles y exporta el resultado a una hoja de Excel. Hasta ahí todo bien, el problema viene que en la hoja Excel aparece el nombre de campo en la primera fila y no quiero que aparezca, quiero que salgan solo los datos.
He probado con el método OutputTo acOutputTable..., con TransferSpreadsheet acExport...., guardando la exportación y ejecutando DoCmd.RunSavedImportExport..., incluso he creado un Report en el aparece la información como deseo, pero al exportarlo a Excel me vuelve a sacar el dichoso nombre de campo.

No sé qué más probar ni configurar, si a alguien se le ocurre algo, le deberé gratitud eterna.

Muchas Gracias.

Un saludo
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 Antoni Masana
Val: 78
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Exportacion a Excel sin nombre de campo

Publicado por Antoni Masana (32 intervenciones) el 20/07/2018 07:13:12
No se exactamente como lo haces para pasar los datos de Access a Excel.

Si lo haces con exportar de Access crea un libro Excel y el resultado es un poco guarrillo si lo quieres adjuntar a oro libro.

Si lo quieres importar desde Excel con las opciones predefinidas, es decir: Pestaña -> Datos -> Desde Access -> Obtener datos externos de access tres cuartos de lo mismo.

Pero hay una solución más limpia y es hacerlo a través de una macro En Excel donde puedes abrir el Access crear una consulta o usar una consulta de Access y aplicar un filtro y poner los datos directamente donde desees. Y hasta puedes leer los datos sin necesidad de saber los nombres de los campos..

Seguramente se pueda hacer con la macro en Access pero eso no lo domino y trabajo más las macros con Excel.

Esto es un ejemplo de la parte de lectura, falta un poco de código antes de esto para que funcione.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
' -------------------------------------------------------------------
' ---&---  Recorro el recordset y añado los datos al combo    ---&---
' -------------------------------------------------------------------
 
With DataRead
    Campos = .Fields.Count
 
    If .EOF Then
        MsgBox Texto, vbCritical + vbOKOnly, "BASE DE DATOS"
        Fin = True
    Else
        .MoveFirst
        While Not .EOF
            For a = 0 To Campos - 1
                Cells(Fila, a + 1) = .Fields(a)
            Next
            Fila = Fila + 1: .MoveNext
        Wend
    End If
End With

Este caso lo utilizo para leer 4 consultas que Access que me devuelven un número de campos diferentes en cada una de ellas.

Saludos.
\\//_
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

Exportacion a Excel sin nombre de campo

Publicado por Gumer (2 intervenciones) el 20/07/2018 08:24:41
Muchas Gracias por el aporte. No me había planteado hacerlo al revés, es decir, en vez de exportar desde Access, importarlo desde Excel. Aunque no estoy muy puesto en macros de Excel voy a cacharrear un poco a ver si obtengo mejores resultados.

Gracias por la ayuda.
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
Imágen de perfil de Antoni Masana
Val: 78
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Exportacion a Excel sin nombre de campo

Publicado por Antoni Masana (32 intervenciones) el 20/07/2018 11:35:23
Te pongo la rutina completa para abrir y leer el Access desde una macro de Excel

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
' </> --------------------------------------------------------------------- </>
' </> ----&---  Actualiza la hoja ---  Desde el MS-Access           ---&--- </>
' </> --------------------------------------------------------------------- </>
 
Sub Leer_Acces( Ruta As String, Fila_Access As String)
    Dim DataRead As ADODB.Recordset
    Dim Conexion As ADODB.Connection, Campos As Integer
    Dim Texto As String
    ' ---&---  Texto de no hay datos
    Texto = "No hay Datos para actualizar."
   ' ---&--- Selecciona Hoja
    Sheets(Hoja).Select
    ' ---&---  Creo una instancia de la conexión
    Set Conexion = New ADODB.Connection
    With Conexion
        .ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0;" + _
                            "Data Source=" & Ruta & File_Access
        .Mode = adModeRead
        .Open
    End With
    ' ---&---  Abro el recordset en modo de sólo lectura. contendrá sólo los _
               valores del campo a traspasar al combo cmbDatos del UserForm
    On Error GoTo Error_Open: Set DataRead = New ADODB.Recordset
    With DataRead
        .Source = "SELECT * FROM [Consulta de Access]"
        .ActiveConnection = Conexion
        .Open
    End With
    On Error GoTo 0
    ' -------------------------------------------------------------------
    ' ---&---  Recorro el recordset y añado los datos al combo    ---&---
    ' -------------------------------------------------------------------
    With DataRead
        Campos = .Fields.Count
        If .EOF Then
            MsgBox Texto, vbCritical + vbOKOnly, "BASE DE DATOS"
            Fin = True
        Else
            .MoveFirst
            While Not .EOF
                For a = 0 To Campos - 1
                    Cells(Fila, a + 1) = .Fields(a)
                Next
                Fila = Fila + 1: .MoveNext
            Wend
        End If
    End With
    ' ---&---  Barremos la casa antes de salir
    DataRead.Close:  Set DataRead = Nothing
    Conexion.Close:  Set Conexion = Nothing:  Exit Sub
 
Error_Open:
    MsgBox "Error el conectarse a la base de datos." & _
            vbCrLf & _
            vbCrLf & _
            "ERROR: " & Err.Description, _
            vbCritical + vbOKOnly, "ERROR en ACCESS"
    End
End Sub

Esta macro Funciona para Office 2010 dependiendo la versión de access puede variar algunas cosas.

A la rutina se le pasan 2 parámetros, la ruta y el nombre de la base de datos.(con extensión accdb)

El texto de la línea 16 es diferente en función de la versión de access
En la línea 25 se define la consulta, se puede usar una consulta de Access y añadir nuevos filtros.

Y además tuve un problema porque las tablas de mi access son vinculadas, pero si se hace bien funciona igual que las otras.


Saludos.
\\//_
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