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
               (
geocities.com/es/ensolva/Descargas)                   (
geocities.com/es/ensolva)                   (
geocities.com/es)