【发布时间】:2018-07-02 15:56:43
【问题描述】:
我有一个允许用户运行报告的 Excel 电子表格。打开电子表格后,会运行一个宏,提示用户输入用户名和密码以创建连接字符串。 (此信息仅存储在该 Excel 实例中,并在文件关闭时丢失)
以下代码允许用户使用打开电子表格时创建的信息运行报表。这可以在不提示输入用户名或密码的情况下反复使用。
With ActiveWorkbook.Connections("Custom_Query").ODBCConnection
.BackgroundQuery = True
Debug.Print strsql
.CommandText = SplitMeUp(strsql)
End With
ActiveWorkbook.Connections("Custom_Query").Refresh
但是,我想创建一个表。当我修改代码以创建表格时,系统会提示用户再次输入密码,即使他们在打开电子表格时已经输入了密码。另外我必须在下面的代码中使用ActiveWorkbook.Connections("Custom_Query").ODBCConnection.Connection。如果我使用原始代码中的ActiveWorkbook.Connections("Custom_Query").ODBCConnection,VBA 会出错。
With ActiveSheet.QueryTables.Add(Connection:=ActiveWorkbook.Connections("Custom_Query").ODBCConnection.Connection, _
Destination:=Range("a9"), Sql:=SplitMeUp(strsql))
.Refresh
如何引用打开文件时创建的连接字符串,以免提示用户再次重新输入密码?
【问题讨论】:
-
当我使用 VBA 创建表时出现,它正在创建一个新连接,而不是使用以前建立的连接,这是它应该做的。
标签: sql excel database-connection vba