gpt4 book ai didi

sql - 创建表时连接字符串不记得密码

转载 作者:行者123 更新时间:2023-12-02 22:29:42 26 4
gpt4 key购买 nike

我有一个 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

如何引用打开文件时创建的连接字符串,以便系统不会提示用户再次重新输入密码?

最佳答案

发生的情况是您运行了两次连接。首先在这段代码中

With ActiveWorkbook.Connections("Custom_Query").ODBCConnection
.BackgroundQuery = True
Debug.Print strsql
.CommandText = SplitMeUp(strsql)

End With

ActiveWorkbook.Connections("Custom_Query").Refresh

然后您通过调用该方法作为

的一部分来再次运行它
With ActiveSheet.QueryTables.Add(Connection:=ActiveWorkbook.Connections("Custom_Query").ODBCConnection.Connection, _
Destination:=Range("a9"), Sql:=SplitMeUp(strsql))
.Refresh

您想要做的是将连接分配给全局对象。没有看到您的所有代码,我最好的猜测是执行以下操作:

在模块顶部声明一个连接对象Public dbConnection as ADODB.Connection。在启动例程中,您需要初始化它Set dbConnection = new ADODB.Connection,然后打开它

With dbConnection
.Provider = "Microsoft.Jet.OLEDB.4.0" 'You'll need to use the correct Provider
ConnectionString = "Data Source=C:\MyFolder\MyWorkbook.xls;Extended Properties=Excel 8.0;" 'See the link for more info on connection string
.Open
End With

这是一个Connection String link因为我记不清了。

然后,您可以运行引用 dbConnection 的命令,而不是重新运行连接方法,即 ActiveWorkbook.Connections("Custom_Query").ODBCConnection

就我个人而言,我创建一个 DAL 模块来处理所有数据库交互,或者创建一个 dbClass 来处理数据操作。

关于sql - 创建表时连接字符串不记得密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48408352/

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