Macro sirve para excel como le hago para que ACCESS
Publicado por gerardo (22 intervenciones) el 29/07/2014 21:10:05
Buenos días, tengo el siguiente código que me funciona para Excel
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"ODBC;DSN=S1036F6M;", Destination:=Range("$A$3")).QueryTable
.CommandText = Array( _
" SELECT T2.WTSHFT,T2.WTMCU ,T2.WTEXR,T2.WTAN8,T2.WTOPSQ,T2.WTDOCO,T2.WTPBTM/100 AS INICIO,T2.WTPETM/100 AS FINAL,T2.WTHRW/100 AS HRS,T2.WTTYR AS TIPO_HORA,T2.WTRCD,T2.WTUSER, " _
, _
" CHAR( DATE('01/01/20' || SUBSTR(STRIP(CHAR(INT(T2.WTDGL/1000))), LENGTH(STRIP(CHAR(INT(T2.WTDGL/1000))))-1)) +(T2.WTDGL-(INT(T2.WTDGL/1000)*1000)-1) DAYS ) AS F_JUL ," _
, _
"CHAR( DATE('01/01/20' || SUBSTR(STRIP(CHAR(INT(T2.WTUPMJ/1000))), LENGTH(STRIP(CHAR(INT(T2.WTUPMJ/1000))))-1)) +(T2.WTUPMJ-(INT(T2.WTUPMJ/1000)*1000)-1) DAYS ) AS F_JUL2 FROM PRODDTA.F31122 T2 WHERE T2.WTDGL " _
, _
" IN (SELECT DISTINCT T3.WTDGL FROM PRODDTA.F31122 T3 WHERE T3.WTDOCO " & NUMERO_ORDEN & " " & " ) AND T2.WTAN8 IN (SELECT DISTINCT T4.WTAN8 FROM PRODDTA.F31122 T4 WHERE T4.WTDOCO " & NUMERO_ORDEN & " " & ") AND (T2.WTTYR IN('2','3') " _
, _
" OR T2.WTTYR= '1' AND T2.WTPBTM >=1) ORDER BY T2.WTAN8, T2.WTDGL, T2.WTPBDT,T2.WTPBTM ") _
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Tabla_Consulta_desde_S1036F6MP"
.Refresh BackgroundQuery:=False
'.Refresh BackgroundQuery:=True
End With
Pero quiero que esta información la descargue a Access, imagino que el error es por el modelo de objetos de Excel, que obvio no es el mismo que Access
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"ODBC;DSN=S1036F6M;", Destination:=Range("$A$3")).QueryTable
.CommandText = Array( _
" SELECT T2.WTSHFT,T2.WTMCU ,T2.WTEXR,T2.WTAN8,T2.WTOPSQ,T2.WTDOCO,T2.WTPBTM/100 AS INICIO,T2.WTPETM/100 AS FINAL,T2.WTHRW/100 AS HRS,T2.WTTYR AS TIPO_HORA,T2.WTRCD,T2.WTUSER, " _
, _
" CHAR( DATE('01/01/20' || SUBSTR(STRIP(CHAR(INT(T2.WTDGL/1000))), LENGTH(STRIP(CHAR(INT(T2.WTDGL/1000))))-1)) +(T2.WTDGL-(INT(T2.WTDGL/1000)*1000)-1) DAYS ) AS F_JUL ," _
, _
"CHAR( DATE('01/01/20' || SUBSTR(STRIP(CHAR(INT(T2.WTUPMJ/1000))), LENGTH(STRIP(CHAR(INT(T2.WTUPMJ/1000))))-1)) +(T2.WTUPMJ-(INT(T2.WTUPMJ/1000)*1000)-1) DAYS ) AS F_JUL2 FROM PRODDTA.F31122 T2 WHERE T2.WTDGL " _
, _
" IN (SELECT DISTINCT T3.WTDGL FROM PRODDTA.F31122 T3 WHERE T3.WTDOCO " & NUMERO_ORDEN & " " & " ) AND T2.WTAN8 IN (SELECT DISTINCT T4.WTAN8 FROM PRODDTA.F31122 T4 WHERE T4.WTDOCO " & NUMERO_ORDEN & " " & ") AND (T2.WTTYR IN('2','3') " _
, _
" OR T2.WTTYR= '1' AND T2.WTPBTM >=1) ORDER BY T2.WTAN8, T2.WTDGL, T2.WTPBDT,T2.WTPBTM ") _
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Tabla_Consulta_desde_S1036F6MP"
.Refresh BackgroundQuery:=False
'.Refresh BackgroundQuery:=True
End With
Pero quiero que esta información la descargue a Access, imagino que el error es por el modelo de objetos de Excel, que obvio no es el mismo que Access
Valora esta pregunta


0