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

    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)