Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Macro con librerías ado, error comparación datos numéricos

Estas en el tema de Macro con librerías ado, error comparación datos numéricos en el foro de Bases de Datos General en Foros del Web. Estoy haciendo una macro sirviéndome de las librerías de ADO, y tengo un problema en una sentencia SQL que no sé cómo resolver. No sé ...
  #1 (permalink)  
Antiguo 04/03/2015, 11:15
 
Fecha de Ingreso: marzo-2015
Mensajes: 1
Antigüedad: 9 años, 8 meses
Puntos: 0
Macro con librerías ado, error comparación datos numéricos

Estoy haciendo una macro sirviéndome de las librerías de ADO, y tengo un problema en una sentencia SQL que no sé cómo resolver. No sé si el problema viene dado por el tipo del campo en la hoja excel o en la propia sentencia SQL.
Me gustaría coger los campos que tienen un valor superior a 1000 y la siguiente instrucción, aunque no falla, no hace el filtro que quiero:


Código:
SQL = "select count([APPThroughputUp]) from [LLAMADAS$] where [APPThroughputUp] not in ('-') AND [APPThroughputUp]> CInt(1000) '"
La instrucción se ejecuta pero no filtra bien, cuenta todos los campos y no sólo los que son mayores que 1000.

¿Alguna idea? Los datos del excel contienen decimales y van con punto en vez de con coma... ¿creeis que puede tener algo que ver el tema de la configuración regional?

En definitiva lo que hago es que estoy volcando los datos en otro excel para hacer un informe. Lo que pretendo hacer aquí es sacar el porcentaje de muestras que tienen throughput >1000. La variable TamHTTPUL2 es igual a 10, se la paso por pantalla.

Lo intento hacer de la siguiente forma:

Código:
SQL = "select count([StartTime]) from [LLAMADAS$] where [CallType] in ('HTTP') AND [Result] in ('Success','TimeOut') AND [APPThroughputUp] not in ('-') AND [AutoCallScenarioName] LIKE '%_" & TamHTTPUL2 & "[Mm_ ]%' AND [APPThroughputUp]> 1000"
     
        Call Execute_SQL(SQL, Workbooks("Report.xlsm").Sheets("LTE_KPIs").Cells(fila + 37, columna), path)
Aquí conecto la base de datos:

Código:
Private Sub Execute_SQL(ByVal strSQL As String, rngPosition As Range, DPath As String)


  
   
    Dim Conn As New ADODB.Connection
    Dim mrs As New ADODB.Recordset
    Dim DBPath As String, sconnect As String
   

    sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DPath & ";HDR=Yes';"
   
    Conn.Open sconnect
   
    mrs.Open strSQL, Conn
    rngPosition.CopyFromRecordset mrs
  
    mrs.Close
   

    Conn.Close
End Sub
Seguro que es una tontería pero empieza a ser desesperante.

Muchas gracias!!

Etiquetas: ado, campos, librerías, macro, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:10.