sql-server - 如何以编程方式创建 DSN?

标签 sql-server vba ms-access

我有一个使用链接的 sql server 表作为数据源的 Access 表单。我需要尽快将此文件分发给其他用户,并且我需要一种方法来以编程方式将 DSN 安装到他们的机器上。 这是手动设置链接的过程:

外部数据 > 更多 > ODBC 数据库 > 链接到数据源 > 机器数据源选项卡 > 按新建 > 用户数据源 > sql server > name=由你决定; server= serverName > SQL server如何验证登录ID的真实性? With windows NT authentication using the network login ID> Attach database File Name(数据库名称)> 选择表并按确定

这就是我 Access 我的表所做的,但我希望这样用户可以按下一个按钮并 Access 该表,同时通过使用 Windows NT 身份验证进行身份验证。

我找不到在 Access vba 代码中编写此代码的方法,有人可以指导我正确的方向吗?

最佳答案

作为一般规则,您会发现使用无 DSN 的连接会更成功。这将消除许多问题。此处概述了如何使用无 DSN 连接:

http://www.accessmvp.com/DJSteele/DSNLessLinks.html

而且您也不想在连接字符串中存储用户名和密码,而只是“登录”一次。这再次避免了巨大的麻烦,也意味着您的连接字符串和/或 DSN 不必在实际链接中保存和公开用户名和密码。

这种方法意味着您可以使用不同的登录名,而不必重新链接或更改现有的表链接。

下面展示了如何使用缓存登录,这样就可以拥有不同的登录而无需重新链接您的表。

https://blogs.office.com/en-us/2011/04/08/power-tip-improve-the-security-of-database-connections/

我强烈建议您在使用链接表到 SQL Server 时采用上述两种方法。

关于sql-server - 如何以编程方式创建 DSN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23413727/

相关文章:

excel - 在 Access 中使用 Excel 电子表格

sql - T-SQL 在字段更改时重置行号,包括重复实例

sql-server - 查询 XML 列与另一个列

excel - 尝试将选定 TreeView 节点的文本复制到剪贴板,但只获取剪贴板中的最后一个节点

vba - MS Access 仅在更改特定方法时停止工作

sql - MS Access 查询设计中的此查询中出现缺少运算符错误

sql - 将多个数据库迁移到一个 Azure SQL 数据库?

sql-server - 从 sql 中的长时间格式获取小时和分钟时间的最简单方法?

arrays - VBA Excel 计算特定值

excel - 当单元格值更改时自动运行宏(用户未更改)