Access - Access a Excel

   
Vista:

Access a Excel

Publicado por José (53 intervenciones) el 08/09/2013 01:36:56
Hola,
tengo el siguiente problema:
Tengo una carpeta Saturno el la cual tengo un archivo Excel Notas.xls.
Lo que yo deseo es lo siguiente:
Desde un formulario Access mediante un botón quiero transferir la tabla ALUMNOS a Excel de la forma siguiente:
Si el archivo ALUMNOS1.XLS no existe en la carpeta Saturno pues copio el archivo NOTAS.XLS con el nombre ALUMNOS1.XLS y copio la tabla de Access en este archivo creado.
Si por el contrario el archico ALUMNOS1.XLS ya existe copio solamente la tabla de Access en la hoja del archico ALUMNOS1.XLS llamada Hoja1.
Naturalmente primero tengo que borrar los datos en Excel y despues copiar la tabla celda por celda; pero aquí me desenvuelvo. Lo que no veo claro es la creación del archivo Excel y la consulata para ver si el archivo existe o no.
Gracias por sus respuestas.
Un saludo
José
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

Access a Excel

Publicado por jose (741 intervenciones) el 08/09/2013 12:10:49
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
REM -------------------TRASPASA UNA  TABLA O CONSULTA -----------------------------
Rem  tienes que agragar la referencia Microsoft Excel n.n desde projectos->referencias
 
Dim objExcel As New Excel.Application: Rem VARIABLES DE EXCELL
Dim rst As DAO.Recordset, strSQL As String: Rem VARIABLES DE DAO
 
With objExcel
            .Visible = True
            'Abro el archivo excel
            .workbooks.Open "C:\Users\jo\Desktop\ExportaraExcel.xls":   Rem UBICACION   Y NOMBRE DEL LIBRO  *** PONER EL DESEADO
            'Seleciono la hoja del libro con la que voy a trabajar
            .workbooks(.workbooks.Count).sheets("CUENTAS").select: Rem   NOMBRE DE LA HOJA    *****PONER EL DESEADO
  End With
 
 
  Rem AQUI SELECIONO LA TABLA -------------------------************** CAMBIAR CLIENTES POR EL NOMBRE DE LA TABLA DESEADA . ' construyo la cadena de la SELECT
        strSQL = "SELECT *" & "FROM [CLIENTES] "
            'Agrego datos
            Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)
 
            Rem  grabo  la cabecera -----------------------------
            'copiar rótulos
            lngCampos = rst.Fields.Count
            For i = 0 To lngCampos - 1
            objExcel.workbooks(objExcel.workbooks.Count).ActiveSheet.Cells(1, (i + 1)).Value = rst.Fields(i).Name
            Next
            Rem ---------
 
            rst.MoveFirst
            N = 2
            ' si el recordset no está vacio
        Do While rst.EOF = False
 
 
            lngCampos = rst.Fields.Count
            For i = 0 To lngCampos - 1
            objExcel.workbooks(objExcel.workbooks.Count).ActiveSheet.Cells(N, i + 1).Value = rst.Fields(i).Value
            Next
            rst.MoveNext
            N = N + 1
      Loop
 
 
            objExcel.workbooks(objExcel.workbooks.Count).Save
            objExcel.workbooks(objExcel.workbooks.Count).Close
            objExcel.Quit
 
Set objExcel = Nothing

jose Manuel desdel EL ASTILLERO
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

Access a Excel

Publicado por José (53 intervenciones) el 08/09/2013 17:30:41
Hola jose,
gracias por tu respuesta. Ya es parte de lo que necesito.
Voy a hacer como indicas pero creo que funcionará.
Un saludo
José
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