Ejecutar un archivo de sonido al hacer clic en un botón de un formulario de Access

Lo he intentado con Public Declare Function sndPlaySound Lib "winmm.dll" dando me el siguiente error:

El código de este proyecto se debe actualizar para usarse en sistemas de 64 bits.
Revise y actualice las instrucciones Declare y, a continuación, marquelas con el atributo PtrSafe.

1 respuesta

Respuesta
1

La respuesta te la está dando el propio sistema tienes que declararla como

Public Declare PtrSafe Function...

Pero si me permites un consejo, sólo un consejo. Teniendo como tienes el reproductor de windows media, para qué declarar funciones. Mira, lo voy a dejar visible en el formulario, aunque podría estar oculto

Si tengo el formulario

Y en el evento Al abrir, o al activar registro, o como quieras, le pongo

Private Sub Form_Current()
Reproductor.URL = "c:\users\gonza\documents\borrar\highwaytohell.mp3"
End Sub

En cuanto lo abro, empiezan a sonar los AC-DC

La ventaja de este sistema es que puedes hacer listas de reproducción, que te suenen canciones en intervalos de tiempo. Por ejemplo, para esto último

Le digo que al abrir reproduzca High..... y que cada x tiempo reproduzca otras

Private Sub Form_Current()
Reproductor.URL = "c:\users\gonza\documents\borrar\highwaytohell.mp3"
End Sub
Private Sub Form_Timer()
Contador = Nz([Contador]) + 1
Select Case Contador
Case 5, 20, 35, 50
Reproductor.URL = "c:\users\gonza\documents\borrar\corazonespinado.mp3"
Case 10, 25, 40, 55
Reproductor.URL = "c:\users\gonza\documents\borrar\dustinthewind.mp3"
Case 15, 30, 45
Reproductor.URL = "c:\users\gonza\documents\borrar\highwaytohell.mp3"
Case Is = 61
Contador = 0
End Select
End Sub

Vamos, que se pueden hacer un montón de cosas

¡Gracias! 

Es de bien nacido ser agradecido, mi problema es que ya soy un pensionista que va a cámara lenta

y aun estoy asimilando tu respuesta pero creo ir por buen camino con tus consejos por lo que te adjunto por donde voy.

Los archivos de sonido los tengo en la tabla Simon_Tb y pretendo que suenen al hacer clic en la

consulta correspondiente a cada color. Cada vez que hago doble clic en la consulta correspondiente suena pero no se como hacerlo en el formulario inicio.

No dices si en la tabla, en el campo que sea guardas la ruta completa a ese archivo de audio o si sólo guardas el nombre. Pero sin son nada más que cuatro canciones, quizá, no lo sé, te sobre la tabla.

En las propiedades de cada uno de esos ¿rectángulos? Que tienes dibujados, en el evento Al hacer clic puedes poner(como te digo, sin saber como lo guardas en la tabla) y te pongo dos

Private Sub Cuadro29_Click()
Reproductor.URL = "C:\Users\gonza\Documents\Mi Musica\Ameno.mp3"
End Sub

Y lo correspondiente para el verde

Si me dices, que cambian, y guardas las rutas en una tabla, en la que debes tener un campo que identifique a un registro en concreto, en el campo, por ejemplo, Cancion podrías ponerlo como

Private Sub Cuadro29_Click()
Reproductor.URL = DLookup("cancion", "alumnos", "DNI=""11111111A""")
End Sub

En fin, que hay muchas formas de hacerlo

¡Gracias! 

Disculpa la falta de información pero intenté mandarte un video y no pude por eso solo ta llegó la captura de una consulta que aunque pone Foto es un objeto olé que al activarlo reproduce el correspondiente sonido.

Solo necesito que suenen esos cuatro paquetes del campo Foto y que lo hacen al activar el correspondiente color.

Soy un enemigo declarado de los campos OLE, Datos Adjuntos y Calculados. Voy a ser fino y comedido, son una auténtica mierda. Imagínate lo que diría si no fuera. El gran problema de los campos OLE, es que engordan la base de datos, además están pensados para abrirlos con su programa editor. En este caso no tienes problema porque son cuatro canciones, pero si fueran más, o fotos etc, el tamaño se dispara y el programa editor se abre a ventana completa.. Por eso no entiendo que se usen esos campos, y más habiendo funciones como MSOFiledialog o Application. Follow Hyperlink

Mira, creo que es mejor, que si quieres, repito, si quieres, mándame un mensaje (sólo el mensaje) a [email protected] y te mando varios ejemplos de como hacerlo mejor y más sencillo.

Si lo haces, en el asunto del mensaje pon tu alias Manuel Jimenez, ya que si no sé quien me escribe, ni los abro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas