2

我正在尝试制作一个 Excel 文件,该文件将从 SQL 数据库中提取并为前端用户提供所需的信息。现在,excel 将在提取数据后进行大量计算,而我在这些数据上工作得很好。我的问题是在我的计算机上一切都很好,但是第二次我通过电子邮件将它发送给不再有效的人,因为他们没有与我相同的 OLEDBConnection。那么有没有办法让我为他们建立这种联系。以下是我在执行该过程时刚刚记录的示例代码。

Sub SQL()

With ActiveWorkbook.Connections("SG_Statday_Player").OLEDBConnection
    .BackgroundQuery = False
    .CommandType = xlCmdSql
    .Connection = _
    "OLEDB;Provider=SQLOLEDB.1;Password=****;Persist Security Info=True;User ID=****;Data Source=0.0.0.0;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=PCName;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=WINOASIS"
    .RefreshOnFileOpen = False
    .SavePassword = False
    .SourceConnectionFile = ""
    .SourceDataFile = ""
    .ServerCredentialsMethod = xlCredentialsMethodIntegrated
    .AlwaysUseConnectionFile = False
End With
With ActiveWorkbook.Connections("SG_Statday_Player")
    .Name = "SG_Statday_Player"
    .Description = ""
End With
With ActiveSheet.ListObjects.Add(SourceType:=4, Source:=ActiveWorkbook. _
    Connections("SG_Statday_Player"), Destination:=Range("$A$1")).TableObject
    .RowNumbers = False
    .PreserveFormatting = True
    .RefreshStyle = 1
    .AdjustColumnWidth = True
    .ListObject.DisplayName = "Table_WINOASIS_Query"
    .Refresh
End With

我曾想过尝试编写一个宏,它只是在执行获取外部数据之前添加连接,但创建连接不允许连接到获取外部数据所执行的多个表。

我现在尝试将我的连接文件复制到他们的 PC 上,将连接文件保存在网络驱动器上,以及从我需要的两个表中拆分数据并一次将它们拉到一个表中并使用 VBA 建立连接和所有这些都意味着没有成功。

我已经联系了另一个论坛,因为我在这里没有看到任何回复。以下是该帖子的链接。

http://www.excelforum.com/excel-programming-vba-macros/1042311-using-excel-to-connect-to-sql-for-multiple-users-on-multiple-computers.html#post3861151

4

0 回答 0