鱼C论坛

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

VBA连接有密码的共享盘

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

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

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

x
各位大神,VBA 怎样打开一个有用户名和密码的网络共享文件?怎么将用户名和密码写在代码中运行代码就能打开共享盘,在用ADO连接文件?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

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

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

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

' 调用WNetAddConnection2函数映射网络驱动器
Dim res As Long
res = WNetAddConnection2( _
         RemoteName:=sharePath, _
         Password:=password, _
         UserName:=username, _
         LocalName:=localDrive, _
         dwFlags:=0 _
      )

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

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

使用道具 举报

发表于 2023-6-17 17:37:09 | 显示全部楼层
二楼大老啊,受教了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 18:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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