El controlados ODBC no admite las propiedades especificadas
Publicado por Raul Alfredo (1 intervención) el 05/04/2013 21:14:20
Hola buenas tardes Mi nombre es Raul y estoy teniendo un problema con una macro que estoy generando para un reporte, para ser mas precisos el problema es con el query que estoy utilizando, los pongo en situación.
Necesito generar un reporte que me extraiga datos de una base de datos DBF, para leer los datos desde la bdd, le solicito al usuario un rango de fechas a partir de los cuales el query buscara los datos, para posteriormente colocarlos en sus celdas correspondientes, el problema esta en que justo después ejecutarse el query me aparece el siguiente error.
Se ha producido el error '-2147217887(80040e21)' en tiempo de ejecucion:
El controlador ODBC no admite las propiedades solicitadas.
A continuación les pongo el código del que les hablo.
Sub CONMOV()
Dim Sql_CONMOV As String
Dim Id_documento As Integer
Dim Id_cliente As Integer
Id_cliente = 0
Set rst = New ADODB.Recordset
Call borrar2
Call Conexion
Sql_CONMOV = "SELECT mgw10002.cidclien01, mgw10002.crazonso01, mgw10008.ciddocum01, mgw10010.cobserva01, mgw10008.cfecha, mgw10008.cfolio, mgw10008.cseriedo01, mgw10008.ctotal AS 'Total_Fac', mgw10005.cnombrep01, mgw10010.cunidades, mgw10010.cprecio, mgw10010.ctotal AS 'Total_Mov' " & _
"FROM mgw10002 mgw10002, mgw10005 mgw10005, mgw10008 mgw10008, mgw10010 mgw10010 " & _
"WHERE mgw10008.ciddocum01 = mgw10010.ciddocum01 AND mgw10010.cidprodu01 = mgw10005.cidprodu01 AND mgw10008.cidclien01 = mgw10002.cidclien01 AND ((mgw10008.cfecha>={d '" & Format(Filtro_CONMOV.Fecha_In, "yyyy-mm-dd") & "'} And mgw10008.cfecha<={d '" & Format(Filtro_CONMOV.Fecha_Fin, "yyyy-mm-dd") & "'})) AND (mgw10008.ciddocum02=$4) AND (mgw10008.cdevuelto=$0) AND (mgw10008.ccancelado=$0)AND (mgw10008.cpendiente>0)) " & _
"ORDER BY mgw10002.cidclien01, mgw10008.ciddocum01"
Range("Sql_CONMOV") = Sql_CONMOV
rst.Open Sql_CONMOV, cnn, adOpenDynamic, adLockOptimistic
fila = 10
If rst.EOF Then
a = MsgBox("No hay registros para mostrar", vbCritical)
Else
Do
Worksheets("CONMOV").Range("A" & fila) = rst.Fields("crazonso01")
Worksheets("CONMOV").Range("A" & fila).Font.Bold = True
Id_cliente = rst.Fields("cidclien01")
...
Lo mas extraño del problema es que tengo otro reporte donde utilizo el mismo query "salvo que llamo menos 1 o 2 tablas menos" y con ese reporte no tengo problemas, ya intente copiar todo el código al nuevo reporte y aun así me falla, yo tengo la sospecha de que el problema lo tengo en la siguiente condición, ((mgw10008.cfecha>={d '" & Format(Filtro_CONMOV.Fecha_In, "yyyy-mm-dd") & "'} And mgw10008.cfecha<={d '" & Format(Filtro_CONMOV.Fecha_Fin, "yyyy-mm-dd") & "'}))
Agradezco de Antemano su ayuda.
Necesito generar un reporte que me extraiga datos de una base de datos DBF, para leer los datos desde la bdd, le solicito al usuario un rango de fechas a partir de los cuales el query buscara los datos, para posteriormente colocarlos en sus celdas correspondientes, el problema esta en que justo después ejecutarse el query me aparece el siguiente error.
Se ha producido el error '-2147217887(80040e21)' en tiempo de ejecucion:
El controlador ODBC no admite las propiedades solicitadas.
A continuación les pongo el código del que les hablo.
Sub CONMOV()
Dim Sql_CONMOV As String
Dim Id_documento As Integer
Dim Id_cliente As Integer
Id_cliente = 0
Set rst = New ADODB.Recordset
Call borrar2
Call Conexion
Sql_CONMOV = "SELECT mgw10002.cidclien01, mgw10002.crazonso01, mgw10008.ciddocum01, mgw10010.cobserva01, mgw10008.cfecha, mgw10008.cfolio, mgw10008.cseriedo01, mgw10008.ctotal AS 'Total_Fac', mgw10005.cnombrep01, mgw10010.cunidades, mgw10010.cprecio, mgw10010.ctotal AS 'Total_Mov' " & _
"FROM mgw10002 mgw10002, mgw10005 mgw10005, mgw10008 mgw10008, mgw10010 mgw10010 " & _
"WHERE mgw10008.ciddocum01 = mgw10010.ciddocum01 AND mgw10010.cidprodu01 = mgw10005.cidprodu01 AND mgw10008.cidclien01 = mgw10002.cidclien01 AND ((mgw10008.cfecha>={d '" & Format(Filtro_CONMOV.Fecha_In, "yyyy-mm-dd") & "'} And mgw10008.cfecha<={d '" & Format(Filtro_CONMOV.Fecha_Fin, "yyyy-mm-dd") & "'})) AND (mgw10008.ciddocum02=$4) AND (mgw10008.cdevuelto=$0) AND (mgw10008.ccancelado=$0)AND (mgw10008.cpendiente>0)) " & _
"ORDER BY mgw10002.cidclien01, mgw10008.ciddocum01"
Range("Sql_CONMOV") = Sql_CONMOV
rst.Open Sql_CONMOV, cnn, adOpenDynamic, adLockOptimistic
fila = 10
If rst.EOF Then
a = MsgBox("No hay registros para mostrar", vbCritical)
Else
Do
Worksheets("CONMOV").Range("A" & fila) = rst.Fields("crazonso01")
Worksheets("CONMOV").Range("A" & fila).Font.Bold = True
Id_cliente = rst.Fields("cidclien01")
...
Lo mas extraño del problema es que tengo otro reporte donde utilizo el mismo query "salvo que llamo menos 1 o 2 tablas menos" y con ese reporte no tengo problemas, ya intente copiar todo el código al nuevo reporte y aun así me falla, yo tengo la sospecha de que el problema lo tengo en la siguiente condición, ((mgw10008.cfecha>={d '" & Format(Filtro_CONMOV.Fecha_In, "yyyy-mm-dd") & "'} And mgw10008.cfecha<={d '" & Format(Filtro_CONMOV.Fecha_Fin, "yyyy-mm-dd") & "'}))
Agradezco de Antemano su ayuda.
Valora esta pregunta


0