动态

详情 返回 返回

Access聲音系統完全指南:從Beep到PlaySound - 动态 详情


hi,大家好!最近,在開發一個掃碼的小功能,在用掃碼槍掃描後,會有“滴”的一聲響,但用户提了一個需求,在掃描結束後,點擊按鈕時,可以再給一個提示反饋。對於這個需求,我們給了一個肯定的答案,當然是可以實現的,今天就教大家如何給Access系統加上"聲音反饋",讓你的應用瞬間提升一個檔次!🎵 Access發聲的3種方法
方法1:Beep(最簡單,1秒搞定)
這是VBA自帶的蜂鳴函數,無需任何聲明,直接用!
'最簡單的示例

Private Sub btnSave_Click()
    '保存數據
    DoCmd.RunSQL "INSERT INTO..."
    
    '發出提示音
    Beep
    
    MsgBox "保存成功!", vbInformation
End Sub

優點:
✅ 超簡單,一行代碼搞定
✅ 不需要外部文件
✅ 兼容所有Windows版本
缺點:
❌ 只能發出系統默認的"嗶"聲
❌ 不能自定義音色
❌ 無法控制音量和時長適用場景:快速原型、簡單提醒、不需要特殊音效的場合
方法2:PlaySound(推薦,專業級)
調用Windows API播放WAV文件,可以自定義各種音效!
1、添加一個模塊

' 模塊:播放聲音聲明與輔助
Option Compare Database
Option Explicit
#If VBA7 Then
    Private Declare PtrSafe Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
        (ByVal lpszName As String, ByVal hModule As LongPtr, ByVal dwFlags As Long) As Long
#Else
    Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
        (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
#End If
Public Const SND_SYNC      As Long = &H0        ' 同步播放(等待結束)
Public Const SND_ASYNC     As Long = &H1        ' 異步播放(立即返回)
Public Const SND_NODEFAULT As Long = &H2
Public Const SND_LOOP      As Long = &H8        ' 與 SND_ASYNC 一起使用進行循環
Public Const SND_FILENAME  As Long = &H20000    ' 指定文件名
Public Const SND_PURGE     As Long = &H40       ' 停止所有播放
' 播放指定 wav 文件 (異步)
Public Sub PlayWavFile(ByVal fullPath As String)
    If Dir(fullPath) = "" Then
        Err.Raise vbObjectError + 513, , "找不到聲音文件: " & fullPath
    End If
    PlaySound fullPath, 0, SND_ASYNC Or SND_FILENAME
End Sub
' 停止所有播放
Public Sub StopSoundPlayback()
    PlaySound vbNullString, 0, SND_PURGE
End Sub

2、準備音效文件在數據庫同目錄創建 Sounds 文件夾,放入WAV文件,我這裏是直接調用的Windows自帶的,路徑為:C:\Windows\Media你也可以和我一樣,調用系統本身的音效。
代碼測試:

Private Sub Command0_Click()
    On Error GoTo ErrHandler
    
    
    
    '播放成功音效
    PlayWavFile "C:\Windows\Media\Ring01.wav"
    
    MsgBox "保存成功!", vbInformation
    Exit Sub
    
ErrHandler:
    '播放錯誤音效
    PlayWavFile "C:\Windows\Media\Ring01.wav"
    MsgBox "保存失敗:" & Err.Description, vbCritical
End Sub

優點:
✅ 可以自定義各種音效
✅ 支持異步/同步播放
✅ 可以循環播放(背景音樂)
✅ 可以隨時停止
缺點:
❌ 只支持WAV格式
❌ 需要準備音效文件

方法3:系統聲音(不推薦,但瞭解一下)

調用Windows系統事件聲音:

'使用系統默認的提示音
Private Declare PtrSafe Function MessageBeep Lib "user32" (ByVal wType As Long) As Long
Private Sub btnTest_Click()
    '0=默認, 16=停止, 32=問號, 48=感嘆號, 64=星號
    MessageBeep 64  '播放"星號"提示音
End Sub

一句話總結給
系統加上聲音,就像給啞巴裝上嘴巴!用户體驗瞬間提升操作效率成倍增長錯誤率大幅下降系統逼格直線上升最重要的是:實現超級簡單,一行代碼就能搞定基礎功能!

覺得有用請點贊👍 + 轉發,讓更多人的Access系統"會説話"!
1024 節日快樂

user avatar Rocokingdom2024 头像 databend 头像 zyx178 头像 huaweichenai 头像 datadowell 头像 dcsjava 头像 cuicui_623c4b541e91e 头像 bssj 头像 yan_609cc3c57e745 头像 qiyuxuanangdechuangkoutie 头像
点赞 10 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.