Option Explicit Declare Function mciSendString Lib "winmm" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long Function Reproduce(RutaFichero As String) On Error GoTo Err_Play_Click 'RutaFichero debe contener el Path completo+Fichero Mid a reproducir, es decir, por ejemplo 'C:\PROTOCOLO\HIMNOS\micancion.mid Dim Temp As Long Temp = mciSendString("open " & Chr(34) & RutaFichero & Chr(34), 0&, 0, 0) Temp = mciSendString("play " & Chr(34) & RutaFichero & Chr(34), 0&, 0, 0) Exit_Play_Click: Exit Function Err_Play_Click: ' Aviso de error de Sonidos MsgBox "Aviso Nº " & Err.Number & " desde el programa Himnos" & Chr(13) _ & Err.Description, vbCritical + vbOKOnly, "Programa Himnos" Resume Exit_Play_Click End Function Para llamar a esta función desde tu Formulario Reproduce (Me.Himno) donde se entiendo que Hinmo es un campo de tabla con registros del tipo "C:\PROTOCOLO\HIMNOS\micancion.mid", por ejemplo