Access - ing

 
Vista:

ing

Publicado por Enrique Morales (2 intervenciones) el 12/01/2006 23:43:58
Que tal a todos necesito de su ayuda para hacer funcionar esta rutina de vb en un módulo de excel para crear una función que traiga los datos desde una bd en access por medio de una referencia contenida en una celda de la hoja de calculo.

la rutina es:

Function traer1(ByRef o)
Dim BD As Database
Dim RSnombres As Recordset
Dim o As String
Set BD = OpenDatabase("C:\\Eventual\Sistema Moper\EST SALIDA1.mdb")
Set RSnombres = BD.OpenRecordset("Altas", dbOpenDynaset)
'o = Text1.Text
With RSnombres
'.MoveFirst
.FindFirst "Folio like '*" + o + "*'"
'Text1.Text = .Fields("Folio")
a = .Fields("Nombre del Empleado")
b = .Fields("Apellido Paterno")
c = .Fields("Apellido Materno")
traer1 = (a + " " + b + " " + c)
'traer1 = .Fields("Nombre del Empleado")
End With
End Function

esta rutina se pega en un módulo dentro del editor de vb de excel se guarda y solo se agrega en excel como una formula ej: =traer1(A1) en donde A1 es la celda que contiene el valor a buscar dentro de la bd

espero me puedan ayudar

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

Crear una función en VBA de Excel para traer datos desde una base de datos de Access

Publicado por Alejandro (4142 intervenciones) el 15/06/2023 23:07:36
Parece que hay un pequeño error en el código de la función que estás intentando utilizar. Aquí tienes una versión corregida de la función "traer1":

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
Function traer1(ByVal o As String) As String
    Dim BD As Database
    Dim RSnombres As Recordset
    Dim a As String, b As String, c As String
 
    Set BD = OpenDatabase("C:\Eventual\Sistema Moper\EST SALIDA1.mdb")
    Set RSnombres = BD.OpenRecordset("Altas", dbOpenDynaset)
 
    With RSnombres
        .FindFirst "Folio like '*" & o & "*'"
 
        If Not .NoMatch Then
            a = ![Nombre del Empleado]
            b = ![Apellido Paterno]
            c = ![Apellido Materno]
            traer1 = a & " " & b & " " & c
        Else
            traer1 = "No se encontraron datos"
        End If
 
        .Close
    End With
 
    Set RSnombres = Nothing
    BD.Close
    Set BD = Nothing
End Function

Para utilizar esta función en una celda de Excel, sigue estos pasos:

1. Abre el editor de Visual Basic en Excel presionando Alt + F11.
2. Inserta un nuevo módulo desde el menú "Insertar".
3. Pega el código de la función en el módulo.
4. Cierra el editor de Visual Basic.
5. En una celda de Excel, utiliza la fórmula `=traer1(A1)`, donde A1 es la celda que contiene el valor a buscar dentro de la base de datos de Access.

Asegúrate de ajustar la ruta del archivo de base de datos de Access en la línea `Set BD = OpenDatabase("C:\Eventual\Sistema Moper\EST SALIDA1.mdb")` para que coincida con la ubicación correcta de tu base de datos.

Ten en cuenta que es necesario tener instalado el controlador ODBC de Access para que la función pueda acceder a la base de datos. Si no lo tienes instalado, es posible que debas descargarlo e instalarlo en tu sistema.
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