【问题标题】:Excel VBA - Remember SQL ODBC User/PasswordExcel VBA - 记住 SQL ODBC 用户/密码
【发布时间】:2019-01-11 09:55:02
【问题描述】:

第一次来,所以希望能得到我的答案,我查遍了谷歌,但我找不到答案。

嗯,我得到了 VBA 代码,它在 Exel 上刷新 SQL 中的代码。

VBA 代码:Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False

每次我的 ODBC 登录名/密码时都会询问,我尝试手动刷新,我想通过将这些信息直接保存在 Excel 单元格或 VBA 中来自动运行(我更喜欢在“ Validaçãode Dados”表)。之后,通过强制用户在表单中插入这些信息(以保持更好看)来使其变得更好。 但问题是每次我尝试运行宏时都会出错(类似于“身份验证失败”)。

  • 我的 SQL 代码在 Excel 位置:

  • 询问我的用户和登录信息:

  • 因不保存用户/登录名而出错:

Office 版本:Microsoft Office 365 商业版

谢谢大家!

【问题讨论】:

  • 您可以选择将 u/p 直接存储在显示“cadeia de conexao”的数据连接文件中。添加UID="user";PWD="pwd"
  • 这只能使用一个(或我的)信息对吗?因为这个查询会被很多人使用,所以每个人都有自己的“用户”和“密码”。因此,我将创建一个表单并将这些信息链接到 Excel 单元格中的“文本框”或其他可以正常工作的地方。

标签: sql vba excel odbc


【解决方案1】:

如果您有 SQL Server,您应该也可以使用 Windows 集成身份验证。您必须在 SSMS 中添加您的用户。

https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/using-integrated-authentication?view=sql-server-2017

【讨论】:

  • 对不起,我没有找到正确的答案,我也不想信任连接,他们需要插入自己的“用户”和“密码”,正如我上面所说的。
【解决方案2】:

我设法使用以下代码从标准窗口询问密码:

ActiveWorkbook.Worksheets("Base").ListObjects(1).QueryTable.Refresh

“Base”是您的工作表的名称,ListObjects(1) 是您只有一个 SQL 查询时的名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 2011-05-10
    • 2010-09-14
    • 2021-07-02
    • 2015-10-25
    相关资源
    最近更新 更多