Hola, Prueba este código (cópialo en un modulo nuevo):
Public Temp As Long
Public Musica_inicio
Public RutaMusica As String
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(Fichero As String)
On Error GoTo Err_Comando9_Click
RutaMusica = CurrentProject.Path
Temp = mciSendString("close " & Chr(34) & RutaMusica & "\" & Musica_inicio
& Chr(34), 0&, 0, 0)
Musica_inicio = Fichero
Temp = mciSendString("open " & Chr(34) & RutaMusica & "\" & Musica_inicio &
Chr(34), 0&, 0, 0)
Temp = mciSendString("play " & Chr(34) & RutaMusica & "\" & Musica_inicio &
Chr(34), 0&, 0, 0)
Exit_Comando9_Click:
Exit Function
Err_Comando9_Click:
' Aviso de error de Sonidos
MsgBox "Aviso Nº " & Err.Number & " desde el programa de reproducción de
sonido" & Chr(13) _
& Err.Description, vbCritical + vbOKOnly, "Function_Reproduce"
Resume Exit_Comando9_Click
End Function
Function Errores(NumeroError As Double, Formulario As String)
On Error GoTo HandleErr
If NumeroError = 2105 Then
MsgBox "Aviso desde el formulario:" & Formulario & Chr(13) _
& "Nº: " & NumeroError & " ->" & "Se ha llegado al Principio / Fin
del fichero de Datos", vbInformation + vbOKOnly, "PACO INFORMA"
Else
MsgBox "Aviso desde el formulario:" & Formulario & Chr(13) _
& "Nº: " & NumeroError & " ->" & Err.Description, vbInformation +
vbOKOnly, "Error"
End If
ExitHere:
Exit Function
HandleErr:
Select Case Err.Number
Case Else
MsgBox "Error " & Err.Number & ": " & Err.Description,
vbCritical, "Sonido.Errores" 'ErrorHandler:$$N=Sonido.Errores
End Select
End Function
----
Se usa así:
Reproduce ("NombreMusica.mp3")