Visual Basic para Aplicaciones - Relacionar 3 Tablas de Acces desde macro excel

Life is soft - evento anual de software empresarial
   
Vista:

Relacionar 3 Tablas de Acces desde macro excel

Publicado por Janlui vaguilarpau@yahoo.com.mx (5 intervenciones) el 11/06/2015 16:33:35
Hola a Todos...

Macro que se ejecute desde excel 2010


- Tengo una BD en access llamada BDATOS
- Dentro de esta BD tengo 3 TABLAS
1. Tabla1
Cliente - Numerico
Fecha - Fecha
Movimientos - Numerico

2. Tabla2
Cliente - Numerico
Nombre - Caracter
Mes1 - Numerico
(hasta)
Mes12 - Numerico

3. Cat_Clientes
Cliente - Numerico
Nom_cliente - Caracter

el campo en común es CLIENTE (deberá esta relacionado).

a). Primeramente deberá borrar la Tabla2
b). Relacionar Tablas con campo Cliente
c). En la Tabla1 hay 12 meses de informacion
d). En tabla2 habr'a clientes unicos (no repetidos)
e). Si es Cliente nuevo en Tabla2, traera el nombre de Cat_clientes
f). Si no existe el Cliente en Cat_clientes... le asignará el texto "Cliente Nuevo"
g). En funcion al mes del campo fecha (Tabla1), irá sumando en MESX los Movimientos de la Tabla1

Hoy en día no e realizado ninguna relacion con campos en comun y precisamente ahi es donde estoy atrapado.

Pregunta adicional: Si no declaro una relacion en tablas pero la tabla2 la indexo y busco el registro con un seek (asi lo hago en fox) como lo haria.

De antemano gracias por su posible colaboración y espero haber sido claro con mi planteamiento.
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

Relacionar 3 Tablas de Acces desde macro excel

Publicado por Wilfrido (2 intervenciones) el 17/10/2015 04:35:56
Hasta donde entiendo necesitas ejecutar una consulta sql desde excel sobre la base de datos acces, si eso es lo que necesitas puedes tomar como modelo este codigo:

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
'Defino como publica la variable de la base de datos
Public DB As DAO.Database
Sub ABRIR_DATOS()
    Dim I As Integer 'variable contador
    'abro la base de datos
    Set DB = OpenDatabase("C:\MI NEGOCIO\DATOS.mdb")
    Recorrer_tabla
    'cerramos la base de datos
     DB.Close
End Sub
'Esta rutina recorre una tabla de la base de datos
Sub Recorrer_tabla()
    Dim strsql As String
    Dim rs As DAO.Recordset
    Dim WS As Excel.Worksheet
    Dim f As Integer
    f = 1
    Set WS = ThisWorkbook.Worksheets("CORREOS") 'Asigno la hoja de calculo a la variable
    'Instruccion SQL
    strsql = "Select * from Email"
     Set rs = DB.OpenRecordset(strsql, dbOpenSnapshot)
     While Not rs.EOF
        WS.Range("A" & f + 1) = rs.Fields("NOMBRE").Value
        WS.Range("B" & f + 1) = rs.Fields("EMAIL").Value
        rs.MoveNext
        f = f + 1
     Wend
End Sub

Presta atencion a la instruccion SQL que ejecuta puedes modificarla dependiendo de tu necesidad.

Wilfrido Martinez(macrosymacros.blogspot.com)
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