首页 > 解决方案 > 通过 ODBC 连接使用 excel vba 进行 SQL 查询

问题描述

我创建了一个 Excel 宏来为我的财务部门运行 SQL 查询,因为他们不是 SQL 专家,它有助于节省时间和精力。

现在,问题是我们有 2 个地点(曼彻斯特/罗马尼亚)。我来自曼彻斯特,excel 宏运行完美,没有任何问题。但是,罗马尼亚的用户无法使用相同的 excel 宏运行任何查询。

罗马尼亚的用户收到“选择数据源”弹出数据源,要求他们选择源,而当我们从曼彻斯特运行宏时没有弹出窗口。

运行查询的数据库是会计数据库。而且,运行或连接到会计软件(即前端)没有问题。

因此,唯一的问题是在运行 excel 宏以连接到数据库并为部门的操作和报告需求运行额外的 SQL 查询时。

有什么我错过的吗?我非常感谢在这方面的任何帮助或帮助。

谢谢和问候,SS

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
        "ODBC;DSN=PT1-DB;UID=SRX_ANALYST_1;PWD=xxxxxxxxx;DBQ=PT1.WORLD;DBA=R;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSucces" _
        ), Array( _
        "sful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;MLD=0;ODA=F")), _
        Destination:=Range("A1")).QueryTable
        .CommandText = QRY_VAR
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "REPORT_SELECTION"
        .Refresh BackgroundQuery:=False
End With

标签: excelvbaodbc

解决方案


推荐阅读