我使用Windows 7和Access 2010.我试图连接到我们的服务器来查看文件。 我的问题是,我不想在代码中有用户名或密码。如果需要验证,我希望有窗口提示它(从我的测试中,一旦验证,您不必重新执行一段时间)。 从MapNetworkDrive Object MSDN,strUser和strPassword是可选的,并使用当前用户凭据,但这似乎不适用于服务器。VBA MapNetworkDrive与Windows凭据的服务器
Dim objFSO As Object
Dim objFolder As Object
Dim objNetwork As Object
Dim strShareLetter As String
Dim strURL As String, strUser as String, strPassword as String
strShareLetter = "L:"
Set objFSO = CreateObject("Scripting.FileSystemObject")
strURL = "\\[email protected]\DavWWWRoot\companydav\nodes\12345678\"
Set objNetwork = CreateObject("WScript.Network")
objNetwork.MapNetworkDrive strShareLetter, strURL, False, strUser, strPassword
Set objFolder = objFSO.GetFolder(strURL)
MsgBox objFolder.Files.Count
MsgBox objFolder.SubFolders.Count
Set objFolder = Nothing
Set objFSO = Nothing
objNetwork.RemoveNetworkDrive (strShareLetter)
Set objNetwork = Nothing
如果我在代码中编写我的用户/密码一切正常。但我需要其他用户才能使用它,我不希望我的证书在任何地方都能使用。我想要一个Windows凭据提示或其他方式。出于安全原因,我不想通过vba提示输入用户密码。
任何想法?我搜索谷歌的解决方案,但我似乎无法找到一个。谢谢
您担心什么安全原因?如果您提示用户,数据不会超出方法的寿命。看起来像一个简单的解决方案。 – RubberDuck 2014-11-04 19:03:24
许多用户将使用该应用程序并通过alt + F11访问代码,因为这里没有任何内容受到保护。有些人在vba中知道一点就可以将用户/密码保存在服务器上的文本文件中,或者在之后做任何事情。 (秘书可以获得bigboss密码)。有了我的背景,我只是不喜欢把密码作为字符串输入到任何地方。 – trixrabbit 2014-11-05 19:14:49
我觉得这个问题有点......最好。用户只能访问自己的用户名和密码,但如果您担心这一点,只需密码保护VBA项目。 – RubberDuck 2014-11-05 19:18:04