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

如何确定Access数据库中使用的ODBC连接名称

Access查询正在调用的ODBC连接名称的方法

方法1:查看链接表的数据源属性

  • 打开Access数据库,在左侧导航窗格找到带小地球图标的ODBC链接表
  • 右键点击该表,选择设计视图,弹出安全提示时点击确定
  • 按下Alt + Enter调出属性窗口,找到连接字符串字段,字段内容里ODBC;DSN=后面跟着的内容就是当前调用的ODBC连接名称

方法2:用VBA代码批量枚举所有ODBC连接

如果需要一次性查询所有链接表关联的ODBC连接,直接运行以下VBA代码即可:

Sub ListAllODBCDSN()
    Dim tdf As TableDef
    For Each tdf In CurrentDb.TableDefs
        ' 筛选ODBC类型的链接表
        If InStr(1, tdf.Connect, "ODBC", vbTextCompare) > 0 Then
            Debug.Print "关联表名:" & tdf.Name
            If InStr(1, tdf.Connect, "DSN=") > 0 Then
                Debug.Print "ODBC连接名:" & Split(Split(tdf.Connect, "DSN=")(1), ";")(0) & vbCrLf
            Else
                Debug.Print "无DSN直连,连接参数:" & tdf.Connect & vbCrLf
            End If
        End If
    Next
End Sub
  • 代码运行后按Ctrl + G打开立即窗口,就能看到所有ODBC连接的关联信息
  • 如果你使用的是无DSN的直连配置,不会返回单独的ODBC连接名,会直接输出完整连接参数

方法3:查询运行时临时活跃的ODBC连接

如果需要查询当前会话中临时打开的、未绑定到链接表的ODBC连接,运行以下代码:

Sub ListActiveODBCConnections()
    Dim cnt As ADODB.Connection
    For Each cnt In CurrentProject.AccessConnection.Connections
        If InStr(1, cnt.ConnectionString, "ODBC", vbTextCompare) > 0 Then
            Debug.Print "活跃连接参数:" & cnt.ConnectionString
            If InStr(1, cnt.ConnectionString, "DSN=") > 0 Then
                Debug.Print "对应的ODBC连接名:" & Split(Split(cnt.ConnectionString, "DSN=")(1), ";")(0) & vbCrLf
            End If
        End If
    Next
End Sub

注意:运行该代码前如果提示“用户定义类型未定义”,需要在VBA编辑器的「工具」->「引用」中勾选Microsoft ActiveX Data Objects x.x Library即可


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:24:04