gpt4 book ai didi

excel - vba Excel数据连接

转载 作者:行者123 更新时间:2023-12-04 21:00:41 32 4
gpt4 key购买 nike

我需要一些帮助。我有一个工作簿 (A),我想打开另一个工作簿 (B) 并运行 B 中的宏。
工作簿 (B) 有一个宏,它与另一个工作簿 (C) 建立 sql 连接以提取数据,当我在工作簿 (B) 中运行此宏时工作正常,但如果我从工作簿 (A) 打开工作簿 (B)并运行宏,我从 Windows 收到一条消息“文件已打开”(WorkBook (C))。
我怎样才能跳过这条消息。

enter image description here

打开连接数据时出现错误。

打开 Workbook(B) 的代码是:

    Sub OpenWorkBookandRun()
tarPath = "..............\"
strfilename = "..........xlsm"

Application.Workbooks.Open tarPath & strfilename
'Run Macro
Workbooks(strfilename).Activate
Application.Run "'................'!Module1.Macro"
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

工作簿(B)中打开数据源的代码是:
    ' Establezco los parametros de la conexion ADO, el RecordSet y la Cadena de conexion
Set oCONN = New ADODB.Connection
Set oRS = New ADODB.Recordset
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & OrigDatos & ";Extended Properties=""Excel 12.0;HDR=Yes;"";"
' Abro la conexion y ejecuto la sentencia SQL
If Not (oCONN Is Nothing) Then
If (oCONN.State And adStateOpen) = adStateOpen Then oCONN.Close
End If
oCONN.Open strConn <--- Line where i get the error
oRS.Open strSQL, oCONN, 1, 3

笔记。有时在第一个工作簿中我会收到相同的消息,但只是有时,我不知道为什么,因为任何人都打开了数据的来源

最佳答案

当您从工作簿 (A) 运行宏时,工作簿 (C) 是否已经打开?
另一个问题是,你需要在 Workbook (C) 中写一些东西吗?如果不这样做,您可以在连接字符串中使用参数以只读方式连接,如下所示:

strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Mode=Read;Data Source=" & OrigDatos & ";Extended Properties=""Excel 12.0;HDR=Yes;""

关于excel - vba Excel数据连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37141006/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com