我有一段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