Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/05/2011, 22:07
Stackado
 
Fecha de Ingreso: junio-2009
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Simplificar el cidogo de una macro realizada con el grabador de macros

Hola,

Gracias por tu respuesta, había estado fuera de la ciudad y no tenia Internet por eso no podía responder el post.

Como comentas mi problema esta en la parte de código que citas donde comienzan los Arrays ( que parecen estar anidados ), al parecer

Código vb:
Ver original
  1. With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
  2.         "ODBC;CollatingSequence=ASCII;DBQ=C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEMA" _
  3.         ), Array( _
  4.         " DE EMBARQUES SAE;DefaultDir=C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEM" _
  5.         ), Array( _
  6.         "A DE EMBARQUES SAE;Deleted=0;Driver={Driver do Microsoft dBase (*.dbf)};DriverId=277;FIL=dBase IV;MaxBufferSize=2048;MaxScanRow" _
  7.         ), Array( _
  8.         "s=8;PageTimeout=5;SafeTransactions=0;Statistics=0;Threads=3;UID=admin;UserCommitSync=Yes;" _
  9.         )), Destination:=Range("$A$1")).QueryTable
  10.         .CommandText = Array( _
  11.         "SELECT clientes.NUM, clientes.NOMB, clientes.CALLE, clientes.RFC" & Chr(13) & "" & Chr(10) & "FROM clientes clientes" & Chr(13) & "" & Chr(10) & "ORDER BY clientes.NUM, clientes.NOMB, clientes.RFC" _
  12.         )

Parece ser que la sintaxis de un Array es "Array(_ _)" utilizando el caracter & para concatenar, intente eliminar algunos pero solo me tiraba error y error y no ejecutaba, veras la ruta completa donde se encuentran las tablas serian

C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEMA DE EMBARQUES SAE

C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEMA DE EMBARQUES SAE


Francamente no tengo idea del por que la ponga 2 veces, primero con el asistente de Query del Excel creo el origen de los datos y después selecciono los campos pero según veo al empezar a poner la ruta el grabador la separa y por eso no aparece completa, ahí es donde empieza todo el embrollo de los Arrays puesto que me empiezo a confundir.

Noto que creas las variables rutas como globales para toda la hoja, como voy a utilizar mas tablas lo ideal seria simplemente cambiar el nombre de la tabla sin tener tanta escala entre carpetas, osea en vez de tener:

C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEMA DE EMBARQUES SAE

Tener algo como:

Tablas/nombre_de_la_tabla.dbf

O podria ser tambien

/nombre_de_la_tabla.dbf

Eso seria lo ideal ya que como destino final sera el acceso a las tabla a través de red pero por ahora debe estar en la misma carpeta todo.

Última edición por Stackado; 07/05/2011 a las 22:15