Excel - Excel - ERROR 1004 VBA, al combiar un valor en una celda, (macro con ODBC)

   
Vista:

Excel - ERROR 1004 VBA, al combiar un valor en una celda, (macro con ODBC)

Publicado por Kevin Fernández (2 intervenciones) el 20/05/2015 20:10:35
hola, estoy tratando de sacar informacion a excel a traves de ODBC. la macro corria normal, pero necesitaba que la funcion capturara el valor de una celda y la utilizara como filtro en la consulta, entonces declare una variable "x", le asigne el valor que necesitaba que se encuentra en la celda F3 y luego la mande como parametro en "set @year = x", a continuacion dejo mi codigo
ayuda por favor


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Dim x As Integer
    x= Range("F3").Value
 
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=alone", _
        Destination:=Range("$B$5")).QueryTable
        .CommandText = Array( _
        "declare @year integer  set @year = x SELECT DISTINCT CFI.NUM_CFI,      CFI.FEC_EMI ,      CFI.FEC_VTO ,      MOV.NUM_LIQ ,      CFI.MON_CFI ,      MOV.MON_TOT_GAS   FROM CRE$CFI CFI, CRE$MOV MOV" _
        , _
        "  WHERE       ( YEAR(CFI.FEC_EMI) <= @year  and YEAR(CFI.FEC_VTO) >= @year) AND      IND_VIG_CFI IN ('3', '5') AND      MOV.NUM_CTA = CFI.NUM_CFI AND      MOV.IND_MOV_EXT = 0 AND      MOV.COD_MOV = '0" _
        , "38'   ORDER BY  CFI.FEC_VTO, CFI.FEC_EMI")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo

Excel - ERROR 1004 VBA, al combiar un valor en una celda, (macro con ODBC)

Publicado por Andres Leonardo (491 intervenciones) el 20/05/2015 20:53:25
Estas seguro que el formato de X puede contener el año en el formato correcto para qe te sirva de filtro??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Excel - ERROR 1004 VBA, al combiar un valor en una celda, (macro con ODBC)

Publicado por Kevin Fernández (2 intervenciones) el 21/05/2015 16:33:01
estoy seguro que el formato es correcto, todos los valores son enteros, la declaración de "x" es un entero, la celda "F3" es un numero, @year tambien esta declarada como entero y la funcion year() retorna un numero entero.

Dim x As Integer //linea 1
x= Range("F3").Value //linea 2
declare @year integer //linea 7
set @year = x //linea 7
YEAR(CFI.FEC_EMI) //linea 9
YEAR(CFI.FEC_VTO) //linea 9


la sentencia en sql sale correcta
a eso te refieres ??
agradesco tu respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo

Excel - ERROR 1004 VBA, al combiar un valor en una celda, (macro con ODBC)

Publicado por Andres Leonardo (491 intervenciones) el 21/05/2015 18:55:42
captura el valor de la sentencia SQL y ejecutla en un management studio como un query

Verifica los datos

**Ojo captura el valor de la variale que tiene la sentencia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar