ACC: How to Play .WAV Sounds on Events in Microsoft Access

ID: Q95647


The information in this article applies to:


SUMMARY

Advanced: Requires expert coding, interoperability, and multiuser skills.

Microsoft Access does not have a built-in function to play sound files on events, such as when a form is opened or closed. However, you can use the Microsoft Windows 3.1 application program interface (API) through Access Basic code to create a user-defined function to play sound files.

This article assumes you are familiar with Access Basic and Windows APIs. In this article, the use of error trapping has been omitted to keep the information as clear and concise as possible.


MORE INFORMATION

Follow these steps to create a user-defined function to play sound files:

  1. Create a new module with a single function named PlaySound().

    NOTE: In the following sample code, an underscore (_) is used as a line-continuation character. Remove the underscore from the end of the line when re-creating this code in Access Basic.
    
    
        '*****************************************************************
        'Declarations section of the module.
        '*****************************************************************
    
          Option Explicit
    
          Declare Function sndplaysound% Lib "mmsystem" (ByVal filename$, _
                                                         ByVal snd_async%)
    
        '================================================================
        ' The following function PlaySound calls the Windows API function
        '================================================================
    
          Function PlaySound (msound)
             Dim XX%
             XX% = sndplaysound(msound, 1)' play mmwave sound
             If XX% = 0 Then MsgBox "The Sound Did Not Play!"
          End Function 


  2. Save the module as Play It Sam.

    The following steps use a command button to trigger the sound, but you can use other events to trigger the sound.


  3. Add a command button to a form that you want to play the sound from:

    
          Object: Command Button
          -------------------------------------------
          Name: Push_Button_1
          Caption: Play Chimes
          On Click: =PlaySound("C:\WINDOWS\CHIMES.WAV")
    
          (Where C:\WINDOWS\ is the location of the sound file and CHIMES.WAV
          is the sound file.) 


NOTE: The Name property is called the ControlName property and the OnClick property is called the OnPush property in Microsoft Access 1.x.

When the form is open in Form view, you can play the sound by clicking the command button. You can assign this function to the form's OnOpen property if you want chimes to play when you open a form.

NOTE: This example does not have error trapping. Unexpected results may occur if the sound file is not in the location specified or does not exist.

If the sound (.WAV file) is in the table as an OLE field, the sound can be added to the form out of the field list. You can then use a macro that does a GoToControl [olefield], DoMenuItem form-edit-object- <verb>. You can run this from a button on the form. It will go to the OLE field and edit the object (the default edit is play for a sound).


REFERENCES

Microsoft Access "Introduction to Programming," Chapters 1-5

"Microsoft Windows Software Development Kit," Microsoft Press, 1992

"Programming Windows: the Microsoft Guide to Writing Applications for Windows 3", Charles Petzold. Microsoft Press, 1990

"Programmer's Reference Library: Microsoft Windows 3.1 Guide to Programming Reference," Volumes 1 - 6, Microsoft Press, 1992

Additional query words: sound api how to


Keywords          : kbprg 
Version           : 1.0 1.1 2.0
Platform          : WINDOWS 
Issue type        : kbhowto 

Last Reviewed: March 18, 1999