sub getData()
dim cn as new adodb.connection
dim rs as new adodb.recordset
dim connStr as string ' connection string
dim sUDLFile as string ' path and name of Microsoft Data Link File (UDL FILE)
dim xSheet as worksheet
connStr="File Name=" & sUDLFile
cn.open connstr
'loop through all the worksheets
for each xSheet in thisworkbook.worksheets
with rs
' open the connection to the db...
.activeconnection=cn
'get the query from the range on the worksheet!
sQry=xsheet.range("Query" & xsheet.name).text
' open the query from the DB
.open sQry
' dump the dataset onto the worksheet with one line of code in B5 cell!
xsheet.range(B5).copyfromrecordset rs
.close
end with
next
' clean up and release memory
cn.close
set cn=nothing
set rs=nothing
'
end sub
2条答案
按热度按时间kx7yvsdv1#
使用“开发工具”选项卡中的“记录”宏按钮,可以记录在使用所需参数创建此类连接时执行的所有操作。
然后停止录制,转到VBA屏幕,看看代码的外观,然后根据自己的喜好更改代码,或者以这种方式录制所有三个版本。
现在将这些VBA代码集成到VBA脚本中。
zaqlnxep2#
请尝试使用ADODB在代码中完成这一切。
首先,在每个工作表上,在单元格A1(可能)中创建一个新的命名区域,名称为:
“查询”和xsheet.name
在单元格中输入特定于该工作表查询
然后在VBA代码模块中使用以下代码:
在MS Windows资源管理器中创建连接字符串(UDL FILE):
1.定位到工作簿所在的目录
1.右键单击并选择新建...〉Microsoft数据链接。
1.将名称更改为一个好的名称(名称.udl可能)
1.双击新文件并设置创建和测试与数据库的连接的设置
有什么问题尽管问!
菲利普