Por si acaso comento algo que te puede ocurrir:
Abrir la conexión tarda mucho, alrededor de eso, 3 segundos.
Si estas usando una funcion que conecta con el mysql cada vez que haces una llamada a la base de datos, sería muy lenta.
Código:
Set Cxn = New Connection
Cxn.CursorLocation = adUseClient
CxnFac = "Driver={MySQL ODBC 3.51 Driver};Server=IP_SERVER;Port=3306;Option=131072;Stmt=;Database=tubasededatos;Uid=user;Pwd=password;"
Cxn.Open CxnFac
ese código es el que abre la conexion con la base de datos, si lo usas dentro de una funcion y la llamas, cada vez abrira una conexion, por lo que tardara.
Si usas esas variables como globales y abres la conexion solo una vez al abrir el programa, y en la funcion o como conectes a la base de datos solo ahces el recordset, las llamadas a la base de datos se hacen casi instantaneas.
No sé si lo harás así o no, pero por si acaso no lo haces te prevengo.
Un saludo.