Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/03/2015, 11:15
snd_87
 
Fecha de Ingreso: marzo-2015
Mensajes: 1
Antigüedad: 10 años, 1 mes
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!!