Newsgroup: it.comp.appl.access
Titolo: Associare un suono ad un evento

Buongiorno a tutti!
Avrei la necessità di sapere come fare per associare un suono per un 
particolare valore di un controllo.
Qualcuno mi aiuta?
Grazie!!!!!!!! 

if me.nomecontrollo.value = quello che ti serve then
fPlayStuff ("Z:\mdb\DB_Estrazione\rocky.mid")
else
msgbox "Oggi la band è in sciopero!"
end if
fPlayStuff lo è il seguente modulo:
Option Compare Database
Option Explicit
Public Const pcsSYNC = 0      ' aspetta sino al termine del brano
Public Const pcsASYNC = 1     ' non aspetta il termine del brano
Public Const pcsNODEFAULT = 2 ' se il brano non esiste, non avviare quellodi 
Default
Public Const pcsLOOP = 8      ' suona loop infinito
Public Const pcsNOSTOP = 16   ' non interrompe un brano
'Sound APIs
Private Declare Function apiPlaySound Lib "Winmm.dll" Alias "sndPlaySoundA" 
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
'AVI APIs
Private Declare Function apimciSendString Lib "Winmm.dll" Alias 
"mciSendStringA" _
    (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
    ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Declare Function apimciGetErrorString Lib "Winmm.dll" _
    Alias "mciGetErrorStringA" (ByVal dwError As Long, _
    ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
Function fPlayStuff(ByVal strFilename As String, _
            Optional intPlayMode As Integer) As Long
'Fornire un Nomefile con estensione
'Supporta file di tipo Wav, AVI, MID
Dim lngRet As Long
Dim strTemp As String
    Select Case LCase(fGetFileExt(strFilename))
        Case "wav":
            If Not IsMissing(intPlayMode) Then
                lngRet = apiPlaySound(strFilename, intPlayMode)
            Else
                MsgBox "Specificare play mode."
                Exit Function
            End If
        Case "avi", "mid":
            strTemp = String$(256, 0)
            lngRet = apimciSendString("play " & strFilename, strTemp, 255, 
0)
    End Select
    fPlayStuff = lngRet
End Function
Function fStopStuff(ByVal strFilename As String)
'Stop il multimedia playback
Dim lngRet As Long
Dim strTemp As String
    Select Case LCase(fGetFileExt(strFilename))
        Case "Wav":
            lngRet = apiPlaySound(0, pcsASYNC)
        Case "avi", "mid":
            strTemp = String$(256, 0)
            lngRet = apimciSendString("stop " & strFilename, strTemp, 255, 
0)
    End Select
    fStopStuff = lngRet
End Function
Private Function fGetFileExt(ByVal strFullPath As String) As String
Dim intPos As Integer, intLen As Integer
    intLen = Len(strFullPath)
    If intLen Then
        For intPos = intLen To 1 Step -1
            'Trova l'ultimo \
            If Mid$(strFullPath, intPos, 1) = "." Then
                fGetFileExt = Mid$(strFullPath, intPos + 1)
                Exit Function
            End If
        Next intPos
    End If
End Function
Function fGetError(ByVal lngErrNum As Long) As String
    ' Trasforma il codice errore in stringa
    Dim lngx As Long
    Dim strErr As String
    strErr = String$(256, 0)
    lngx = apimciGetErrorString(lngErrNum, strErr, 255)
    strErr = Left$(strErr, Len(strErr) - 1)
    fGetError = strErr
End Function
Function fatest()
Dim a As Long
    a = fPlayStuff("C:\winnt\clock.avi")
    'a = fStopStuff("C:\winnt\clock.avi")
End Function
Ovviamente con tutte le varianti del caso: usa quel che vuoi!!!
Ciao
-- 
**********
EmMeCi
**********
Blog: 
http://www.setfocus.it
La mia prima volta con Access 12: 
http://tinyurl.com/e7jc4
 

 Grazie!!!!!!!!
-- 
Roberto
-----------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
-----------------------------------------------

[cut]
la prima parte del mio messaggio:
if me.nomecontrollo.value = quello che ti serve then
fPlayStuff ("Z:\mdb\DB_Estrazione\rocky.mid")
else
msgbox "Oggi la band è in sciopero!"
end if
associ il codice all'eventoi che ti interessa, nel tuo caso è su un 
determinato valore identificato in me.nomecontrollo.value.
fPlayStuff ("Z:\mdb\DB_Estrazione\rocky.mid")
dove fPlayStuff è tutto il codice che hai nel mio primo messaggio da 
incollare in un modulo e Z:\mdb\DB_Estrazione\rocky.mid lo cambi conil 
percorso\nome file che vuoi.
La mia illuminazione ha avuto il giusto vattaggio?


 > per cui se viè possibile........ illuminatemi!
Se quello che vuoi fare è eseguire un file .wav, vai sul  SitoComune (link
qui sotto) e nella Sezione General leggi la FAQ di Stefano Bettini
intitolata "6.14 Come gestire i "suoni" in VBA? (32 bit)". Sostituisci
nell'esempio di utilizzo:
"C:\WINDOWS\MEDIA\CHIMES.WAV"
con il path compleyo del tuo file gong.wav.
Se poi vuoi che il codice l'esecuizione del database continui mentre viene
eseguito il file .wav, nell'esempio di utilizzo sostituisci il valore 2 con
il valore 1.
In alternativa, sempre nella Sezione General del Sito Comune dai uno sguardo
alla mia FAQ intitolata "6.183 Aprire un qualsiasi file (di formato txt,
pdf, tif ecc.) direttamente da un db access (2).



ciao Roberto,
prova così
CreateObject("SAPI.SpVoice").Speak ("Biso MVP forever")
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it