hazlo por consola...
yo tambien tuve la misma necesidad, pero para crear un asistente de importacion / exportacion de copias de seguridad de la bd de la aplicacion.
la idea es ejecudar la consola y ejecutar el mysql dandole los parámetros (usuario, password, bd, y la ruta del fichero a importar).
El codigo tambien detecta cuando se ha finalizado de importar, esto lo hace monitoreando si está abierta la consola o no...
te pongo aqui el codigo
Dim pid As Long
On Error Resume Next
Kill sFile
pid = Shell("cmd.exe /c mysql --user=" & db_user & " --password=" & db_pass & " " & db_nombre & " < " & Chr(34) & sFile & Chr(34), vbHide)
While Proceso_abierto(pid) = True
DoEvents
Sleep (100)
Wend
Sleep 1000
MsgBox "El archivo ha sido importado Exitosamente, vuelva a ejecutar el programa.", vbInformation, "Copia de Seguridad Restablecida"
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function EnumProcesses Lib "PSAPI.DLL" ( _
ByRef lpidProcess As Long, _
ByVal cb As Long, _
ByRef cbNeeded As Long) As Long
Private Function Proceso_abierto(ByVal pid As Long) As Boolean
'Nos dice si un PID esta abierto, para saber si finalizo el proceso
Dim Array_Procesos() As Long
Dim i_Procesos As Long
Dim t_cbNeeded As Long
Dim i As Long
Dim ret As Long
ReDim Array_Procesos(250) As Long
ret = EnumProcesses(Array_Procesos(1), 1000, t_cbNeeded)
i_Procesos = t_cbNeeded / 4
For i = 1 To i_Procesos
If pid = Array_Procesos(i) Then
Proceso_abierto = True
End If
Next
End Function
SALUDOS