hi,大家好!
最近,在开发一个扫码的小功能,在用扫码枪扫描后,会有“滴”的一声响,但用户提了一个需求,在扫描结束后,点击按钮时,可以再给一个提示反馈。对于这个需求,我们给了一个肯定的答案,当然是可以实现的,今天就教大家如何给Access系统加上"声音反馈",让你的应用瞬间提升一个档次!
🎵 Access发声的3种方法
这是VBA自带的蜂鸣函数,无需任何声明,直接用!
'最简单的示例PrivateSub btnSave_Click()'保存数据DoCmd.RunSQL "INSERT INTO..."'发出提示音BeepMsgBox "保存成功!", vbInformationEndSub
优点:
✅ 超简单,一行代码搞定
✅ 不需要外部文件
✅ 兼容所有Windows版本
缺点:
❌ 只能发出系统默认的"哔"声
❌ 不能自定义音色
❌ 无法控制音量和时长
适用场景:
快速原型、简单提醒、不需要特殊音效的场合
调用Windows API播放WAV文件,可以自定义各种音效!
1、添加一个模块
' 模块:播放声音声明与辅助OptionCompare DatabaseOptionExplicit#If VBA7 ThenPrivateDeclare PtrSafe Function PlaySound Lib"winmm.dll"Alias"PlaySoundA" _(ByVal lpszName AsString, ByVal hModule As LongPtr, ByVal dwFlags AsLong) AsLong#ElsePrivateDeclareFunction PlaySound Lib"winmm.dll"Alias"PlaySoundA" _(ByVal lpszName AsString, ByVal hModule AsLong, ByVal dwFlags AsLong) AsLong#EndIfPublicConst SND_SYNC AsLong = &H0 ' 同步播放(等待结束)PublicConst SND_ASYNC AsLong = &H1 ' 异步播放(立即返回)PublicConst SND_NODEFAULT AsLong = &H2PublicConst SND_LOOP AsLong = &H8 ' 与 SND_ASYNC 一起使用进行循环PublicConst SND_FILENAME AsLong = &H20000 ' 指定文件名PublicConst SND_PURGE AsLong = &H40 ' 停止所有播放' 播放指定 wav 文件 (异步)PublicSub PlayWavFile(ByVal fullPath AsString)If Dir(fullPath) = ""ThenErr.Raise vbObjectError + 513, , "找不到声音文件: " & fullPathEndIfPlaySound fullPath, 0, SND_ASYNC Or SND_FILENAMEEndSub' 停止所有播放PublicSub StopSoundPlayback()PlaySound vbNullString, 0, SND_PURGEEndSub
2、准备音效文件
在数据库同目录创建 Sounds 文件夹,放入WAV文件,我这里是直接调用的Windows自带的,路径为:C:\Windows\Media
你也可以和我一样,调用系统本身的音效。
代码测试:
PrivateSub Command0_Click()OnErrorGoTo ErrHandler'播放成功音效PlayWavFile "C:\Windows\Media\Ring01.wav"MsgBox "保存成功!", vbInformationExitSubErrHandler:'播放错误音效PlayWavFile "C:\Windows\Media\Ring01.wav"MsgBox "保存失败:" & Err.Description, vbCriticalEndSub
优点:
✅ 可以自定义各种音效
✅ 支持异步/同步播放
✅ 可以循环播放(背景音乐)
✅ 可以随时停止
缺点:
❌ 只支持WAV格式
❌ 需要准备音效文件
'使用系统默认的提示音PrivateDeclare PtrSafe Function MessageBeep Lib"user32" (ByVal wType AsLong) AsLongPrivateSub btnTest_Click()'0=默认, 16=停止, 32=问号, 48=感叹号, 64=星号MessageBeep 64 '播放"星号"提示音EndSub
我们来看一下效果:
一句话总结
给系统加上声音,就像给哑巴装上嘴巴!
用户体验瞬间提升
操作效率成倍增长
错误率大幅下降
系统逼格直线上升
最重要的是:实现超级简单,一行代码就能搞定基础功能!
觉得有用请点赞👍 + 转发,让更多人的Access系统"会说话"!

