Access - Vincular desde VB

 
Vista:

Vincular desde VB

Publicado por Pérez (1 intervención) el 08/09/2005 13:33:45
Hola!!!!!

Tengo un problemita, a ver si alguien me saca de dudas....

Quiero vincular una hoja de excel diferente a cada uno de los elementos de una tabla. Sé que se puede hacer desde el formulario, pero quiero hacerlo desde código (para hacerlo automáticamente)

Ayudaaaadme, porfavooooó
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 Alejandro

Vincular hojas de Excel a elementos de una tabla desde código

Publicado por Alejandro (4142 intervenciones) el 08/06/2023 19:52:47
Para vincular hojas de Excel a elementos de una tabla en Access desde código, puedes utilizar la librería de automatización de Microsoft Excel. A continuación, te proporciono un ejemplo de cómo puedes lograrlo:

1. Asegúrate de haber agregado una referencia a Microsoft Excel Object Library en tu proyecto de Access. Para hacer esto, ve a la ventana de código, selecciona "Herramientas" en la barra de menú y luego elige "Referencias". En la lista que aparece, busca y marca la casilla de verificación para "Microsoft Excel Object Library".

2. En tu código de Access, utiliza el siguiente ejemplo como base para vincular las hojas de Excel a los elementos de tu tabla:

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
Sub VincularHojasExcel()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim xlApp As Excel.Application
    Dim xlWorkbook As Excel.Workbook
    Dim tbl As TableDef
    Dim strSQL As String
 
    ' Establecer la conexión con la base de datos de Access
    Set db = CurrentDb()
 
    ' Obtener la tabla en la que deseas vincular las hojas de Excel
    Set tbl = db.TableDefs("NombreTabla")
 
    ' Crear una instancia de la aplicación de Excel
    Set xlApp = New Excel.Application
 
    ' Abrir cada hoja de Excel y vincularla a un elemento de la tabla
    Set rs = db.OpenRecordset("SELECT * FROM NombreTabla")
    Do While Not rs.EOF
        ' Obtener el nombre del archivo de Excel para esta fila
        strSQL = "SELECT NombreArchivo FROM NombreTabla WHERE ID = " & rs!ID
        ' Cambiar "NombreTabla" por el nombre real de tu tabla
        ' Cambiar "ID" por el campo que identifica cada elemento de tu tabla
        ' Cambiar "NombreArchivo" por el campo que contiene el nombre del archivo de Excel
 
        ' Ejecutar la consulta y obtener el nombre del archivo
        Dim fileName As String
        fileName = db.OpenRecordset(strSQL).Fields("NombreArchivo")
 
        ' Abrir el archivo de Excel y vincularlo a la tabla
        Set xlWorkbook = xlApp.Workbooks.Open(fileName)
        Set tbl.Connect = "Excel " & xlWorkbook.FullName & ";"
        tbl.RefreshLink
 
        ' Cerrar el archivo de Excel
        xlWorkbook.Close
        Set xlWorkbook = Nothing
 
        rs.MoveNext
    Loop
 
    ' Limpiar objetos
    rs.Close
    Set rs = Nothing
    Set tbl = Nothing
    Set db = Nothing
 
    ' Cerrar la aplicación de Excel
    xlApp.Quit
    Set xlApp = Nothing
End Sub

Asegúrate de ajustar el código según tus necesidades. Reemplaza "NombreTabla" con el nombre real de tu tabla en Access, "ID" con el campo que identifica cada elemento de tu tabla y "NombreArchivo" con el campo que contiene el nombre del archivo de Excel para cada elemento.

Este código abrirá cada archivo de Excel especificado en la tabla y lo vinculará a su respectivo elemento. Ten en cuenta que si el archivo de Excel cambia de ubicación, deberás actualizar la tabla o modificar el código para reflejar los nuevos nombres de archivo.

Espero que esta solución te ayude a vincular hojas de Excel a elementos de una tabla en Access desde código.
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