06/05/2011, 20:21
|
| | | Fecha de Ingreso: marzo-2007 Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes Puntos: 88 | |
Simplificar el cidogo de una macro realizada con el grabador de macros Entiendo que tu problema está en esta parte del código: Código PHP: With ActiveSheet.ListObjects.Add(SourceType:=0, _ Source:=Array(Array("ODBC;CollatingSequence=ASCII;" & "DBQ=" & _ "C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEMA" _ ), Array(" DE EMBARQUES SAE;DefaultDir=" & _ "C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEM" _ ), Array("A DE EMBARQUES SAE;Deleted=0;Driver={Driver do Microsoft dBase (*.dbf)};DriverId=277;" & _ "FIL=dBase IV;MaxBufferSize=2048;MaxScanRow"), Array("s=8;PageTimeout=5;SafeTransactions=0;" & _ "Statistics=0;Threads=3;UID=admin;UserCommitSync=Yes;")), Destination:=Range("$A$1")).QueryTable 1º) Nota que aprovechando que se trata de una línea de código muy larga, la he subdividido en varios tramos.
¿Primera comprobación a realizar?... Verifica que de este modo el código sigue funcionando adecuadamente.
2º) El problema de lo que llamas "rutas relativas / estáticas" estaría dado por estas dos expresiones: C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEMA
y C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEM
Difieren en una letra, por lo que no sé decirte si es lo correcto o así está bien.
3º) En todo caso, ¿cómo lo solucionas?... Pues mira lo siguiente que es equivalente a lo que tienes: Código PHP: Dim Ruta1 As String, Ruta2 As String Ruta1 = "C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEMA" Ruta2 = "C:\USERS\ABRAHAM\DOCUMENTS\ESCUELA Y PRACTICAS PROFESIONALES\PROYECTOS PEÑA\INTERFAZ SAE\RV SISTEM" With ActiveSheet.ListObjects.Add(SourceType:=0, _ Source:=Array(Array("ODBC;CollatingSequence=ASCII;" & "DBQ=" & Ruta1 _ ), Array(" DE EMBARQUES SAE;DefaultDir=" & Ruta2 _ ), Array("A DE EMBARQUES SAE;Deleted=0;Driver={Driver do Microsoft dBase (*.dbf)};DriverId=277;" & _ "FIL=dBase IV;MaxBufferSize=2048;MaxScanRow"), Array("s=8;PageTimeout=5;SafeTransactions=0;" & _ "Statistics=0;Threads=3;UID=admin;UserCommitSync=Yes;")), Destination:=Range("$A$1")).QueryTable Como ya debes haber advertido, el problema se circunscribe -ahora- a definir correctamente "Ruta1" y "Ruta2": ¡pero eso es lo más sencillo!.
¿Te sirve la idea?
Saludos, Cacho. |