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

时间:2014-06-15 10:59:57

标签: ms-access access-vba ms-access-2007

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

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

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

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

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

提前感谢任何回复/建议。

1 个答案:

答案 0 :(得分:0)

我无法在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路径从网络共享打开数据库时,它返回以下内容...

\\Weezer\Public
DCF1295E