Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/05/2011, 12:25
Avatar de mrocf
mrocf
 
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo Simplificar el cidogo de una macro realizada con el grabador de macros

La verdad es que sigo sin entender cual es -exactamente- tu dilema. Sin embargo, espero, poder orientarte si te comento lo siguiente:

El código que la grabadora de macros te entregó te permite ver dos cosas importantes:

-> Los dos parámetros "DBQ=" y "DefaultDir=" te indican la carpeta en la que el MS Query localizará a los *.dbf.

Dices que todas tus tablas se encuentran en la misma posición... Por lo tanto: esa parte del código no la tienes que modificar.
(Mi sugerencia inicial devino de interpretar que estabas buscando tablas en distintas carpetas. Luego: olvida esa sugerencia inicial.)

-> En la siguiente parte del código:

"SELECT clientes.NUM, clientes.NOMB, clientes.CALLE, clientes.RFC" & Chr(13) & Chr(10) & "FROM clientes" & Chr(13) & Chr(10) & "ORDER BY clientes.NUM, clientes.NOMB, clientes.RFC"

es donde especificas la tabla "a la que apuntas". En el ejemplo que has mostrado, se refiere a "clientes.dbf".
_________________

Si tu consulta se corresponde con información de una sola tabla (recuerda que a veces -en consultas más elaboradas- cruzamos datos entre dos o más tablas), entonces el código anterior puede simplificarse del siguiente modo:

"SELECT NUM, NOMB, CALLE, RFC" & Chr(13) & Chr(10) & "FROM clientes" & Chr(13) & Chr(10) & "ORDER BY NUM, NOMB, RFC"

Puedes ver que hacemos una única mención a la tabla correspondiente.
El paso que sigue es introducir la "variabilidad" del siguiente modo:

Dim myTable As String
myTable = "clientes"

"SELECT NUM, NOMB, CALLE, RFC" & Chr(13) & Chr(10) & "FROM " & myTable & Chr(13) & Chr(10) & "ORDER BY NUM, NOMB, RFC"


Variando -entonces- el valor de la variable "myTable" es como parametrizas el acceso a la tabla que prefieras.

Saludos, Cacho.