鱼C论坛

 找回密码
 立即注册
查看: 3026|回复: 2

VBA连接有密码的共享盘

[复制链接]
发表于 2023-3-11 15:35:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
各位大神,VBA 怎样打开一个有用户名和密码的网络共享文件?怎么将用户名和密码写在代码中运行代码就能打开共享盘,在用ADO连接文件?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-14 22:46:25 | 显示全部楼层
  1. 要打开带有用户名和密码的网络共享文件,在VBA中可以使用Windows API函数WNetAddConnection2。以下是一个示例代码,可以将共享文件夹映射到本地驱动器,并使用提供的用户名和密码进行身份验证。

  2. ' 定义网络共享文件路径
  3. Const sharePath As String = "\\server\share"

  4. ' 定义要映射到的本地驱动器号
  5. Const localDrive As String = "Z:"

  6. ' 定义用户名和密码
  7. Const username As String = "your_username"
  8. Const password As String = "your_password"

  9. ' 调用WNetAddConnection2函数映射网络驱动器
  10. Dim res As Long
  11. res = WNetAddConnection2( _
  12.          RemoteName:=sharePath, _
  13.          Password:=password, _
  14.          UserName:=username, _
  15.          LocalName:=localDrive, _
  16.          dwFlags:=0 _
  17.       )

  18. ' 检查是否映射成功
  19. If res = 0 Or res = 1219 Then
  20.     ' 映射成功或已经存在映射,使用ADO连接共享文件
  21.     Dim conn As ADODB.Connection
  22.     Set conn = New ADODB.Connection
  23.     conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
  24.                               "Data Source=" & localDrive & "\path\to\file.accdb"
  25.     conn.Open
  26.     ' 进行其他操作,例如查询数据等
  27. Else
  28.     ' 映射失败,处理错误
  29.     MsgBox "Failed to map network drive.", vbExclamation
  30. End If
  31. 在上面的代码中,我们首先定义共享文件夹的路径和要映射到的本地驱动器号。然后,我们定义用户名和密码。接下来,我们调用WNetAddConnection2函数来映射网络驱动器,并指定用户名和密码进行身份验证。如果映射成功或已经存在映射,我们使用ADO连接共享文件。如果映射失败,我们会弹出一个消息框显示错误信息。

  32. 请注意,将用户名和密码写在代码中是不安全的,因为它们可以被轻松地窃取。更好的方法是将它们存储在一个安全的地方,并在代码中引用它们。例如,您可以将它们存储在Windows凭据管理器中,并使用[CredRead](poe://www.poe.com/_api/key_phrase?phrase=CredRead&prompt=Tell%20me%20more%20about%20CredRead.)函数从代码中读取它们。
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2023-6-17 17:37:09 | 显示全部楼层
二楼大老啊,受教了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 07:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表