You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Access中通过VBA查询当前系统的默认列表分隔符

解决方案

以下是两种可直接在Access VBA中使用的实现方案,无需额外引用依赖:

方案1:使用内置Application.International属性(最简方案)

直接调用Access VBA内置属性读取,代码量最少,适配绝大多数常规场景:

Sub ShowSystemListSeparator()
    Dim listSeparator As String
    ' xlListSeparator为VBA内置常量,对应系统列表分隔符配置项
    listSeparator = Application.International(xlListSeparator)
    MsgBox "当前系统默认列表分隔符:" & listSeparator, vbOKOnly, "查询结果"
End Sub

该属性读取的是Windows控制面板「区域设置」中的全局列表分隔符配置,和系统设置实时同步。

方案2:调用Windows API读取(高兼容方案)

如果遇到低版本Access或特殊权限场景下内置属性读取失败的情况,可以使用系统API直接读取区域配置:

' 兼容32位/64位Access
#If VBA7 Then
    Declare PtrSafe Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
#Else
    Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
#End If

Const LOCALE_USER_DEFAULT = &H400
Const LOCALE_SLIST = &HC

Sub GetListSeparatorByAPI()
    Dim buffer As String * 256
    Dim bufferLength As Long
    bufferLength = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLIST, buffer, Len(buffer))
    Dim listSeparator As String
    listSeparator = Left(buffer, bufferLength - 1)
    MsgBox "当前系统默认列表分隔符:" & listSeparator, vbOKOnly, "查询结果"
End Sub

该方案直接读取系统用户的区域配置项,兼容性更强,支持所有Access版本。

内容的提问来源于stack exchange,提问作者George Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 01:45:03