06/05/2011, 20:21
|
| | | Fecha de Ingreso: marzo-2007 Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 7 meses 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. |