Challenge: Requête ADO dans Fonction de feuille

Jam

XLDnaute Accro
Bonjour à tous,

Le sujet:
J'ai une base de données sous MySql contenant environ 50000 enregistrements. Je dois à partir de celle-ci renvoyer dans une feuille de calcul différents résultats (environ 400 calculs).
Après une longue réflexion, j'ai écris une fonction de feuille de calcul qui fait appel à ADO pour requêter ma base (cf code ci-après).

La fonction:
Code:
Const sConnectionString As String = 'DRIVER={MySQL ODBC 3.51 Driver};' & _
                        'SERVER=localhost;' & _
                        'DATABASE=prixrevient;' & _
                        'UID=xxx;PWD=xxx; OPTION=3'

Function GetHeuresProd(sCode_Section As String, sNum_Section As String, sCode_Operation As String) As Variant
Dim rs As New ADODB.Recordset
Dim sSql As String

'Application.Volatile

sSql = 'SELECT SUM(data_production.HEURES) FROM data_production' & Space(1)
sSql = sSql & 'WHERE(((data_production.CDESECTION)=' & sCode_Section & 'Â'Â') AND ((data_production.NUMSECTION)=' & sNum_Section & 'Â'Â') AND ((data_production.CDEOPER) IN (' & sCode_Operation & 'Â'Â')));'
rs.Open sSql, sConnectionString, adOpenStatic, adLockReadOnly, adCmdText
GetHeuresProd = rs(0)
rs.Close
Set rs = Nothing
End Function
Celle-ci fonctionne très bien jusqu'à présent.

Le challenge:
Quelqu'un connaîtrait-il un (très) bon moyen d'optimiser cette fonction afin d'avoir le temps de réponse le plus bref possible. eventuellement une autre méthode (ADO ou autre) s'il en existe une.
NB.: Ma table est indexée sur les champs requêtés (of course). Application.Volatile est commenté afin d'éviter les recalculs à chaque modification de la feuille.

Merci d'avance pour votre aide.

Message édité par: mrexcel, à: 04/05/2005 18:01
 

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 875
Membres
103 980
dernier inscrit
grandmasterflash38