通过FileSystemObject检索映射的网络驱动器序列号



我有一段VBA代码,如下所示

VSN = Hex(Format(CDbl(FSO.Drives(FSO.getDriveName(CurrentProject.path)).SerialNumber)))

这是我检索用户卷序列号的地方。这在本地硬盘驱动器上工作得很好,但是,它不在映射的网络驱动器上(我猜)没有驱动器前缀(例如C:或D:)用于函数FSO.getDriveName。要么是这样,要么是在FSO.Drives()上失败,因为它没有可用的驱动器号。

有人知道如何解决这个问题吗?

顺便说一下,代码产生的错误如下:运行时错误'5':无效的过程调用或参数。

提前感谢您的回复/建议

我无法在Access 2010下重新创建您的问题。代码…

Option Compare Database
Option Explicit
Sub DriveSerialNumberTest()
    Dim fso As Object  'FileSystemObject
    Dim VSN As String
    Set fso = CreateObject("Scripting.FileSystemObject")
    Debug.Print fso.GetDriveName(CurrentProject.Path)
    VSN = Hex(Format(CDbl(fso.GetDrive(fso.GetDriveName(CurrentProject.Path)).SerialNumber)))
    Debug.Print VSN
    Set fso = Nothing
End Sub

…当通过映射的驱动器号从网络共享打开数据库时,在"立即"窗口中返回以下内容…

Z:
DCF1295E

…当通过UNC路径从网络共享打开数据库时,它返回以下内容:

\WeezerPublic
DCF1295E

最新更新