自动关闭特定目录中的打开文件

时间:2010-11-03 14:11:27

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

是否可以使用VBA关闭给定目录中的所有打开文件,而不知道文件名/扩展名等...

编辑.....

我有链接到记录的目录,例如Joe Bloggs的记录有一个与名称相关的目录,例如Bloggs,Joe

如果用户更改了记录名称,则文件夹名称必须反映这一点。

目前,如果关闭所有关联文件,我可以更改目录名称。此外,如果这些文件打开,我可以提示用户关闭相关文件。

我想知道是否可以关闭/提示保存文件?

再次编辑.....

为了使问题更复杂,目录树中还有与每条记录相关的目录。 (我应该在开始时更清楚,数据库存储有关家庭保险索赔的信息)

所以你有一个像这样的目录结构:

用户名_ID \第1行属性地址_ID \声明否_ID

提前感谢您提供任何帮助

干杯

诺尔

1 个答案:

答案 0 :(得分:2)

我认为你可以不理解这件事。您的Users表应具有主键user_id。假设Joe Bloggs的user_id为27.为他创建文件夹为C:\ userdirs \ 27。如果稍后更改了Joe的名称,则他的user_id和用户文件夹可以保持不变。

如果您的用户需要按用户名而不是user_id访问这些文件夹,请为他们创建快捷方式。

Public Function CreateUserDirShortcut(ByVal pLinkFolder As String, _
        ByVal pLinkName As String, _
        ByVal pTargetFolder As String) As Boolean

    Dim objShell As Object
    Dim objLink As Object
    Dim strMsg As String
    Dim blnReturn As Boolean

On Error GoTo ErrorHandler

    Set objShell = CreateObject("WScript.Shell")
    Set objLink = objShell.CreateShortcut(pLinkFolder & Chr(92) & pLinkName & ".lnk")
    objLink.Description = pLinkName
    objLink.TargetPath = pTargetFolder
    objLink.Save
    blnReturn = True

ExitHere:
    Set objLink = Nothing
    Set objShell = Nothing
    CreateUserDirShortcut = blnReturn
    On Error GoTo 0
    Exit Function

ErrorHandler:
    strMsg = "Error " & Err.Number & " (" & Err.Description _
        & ") in procedure CreateUserDirShortcut"
    MsgBox strMsg
    blnReturn = False
    GoTo ExitHere
End Function

然后您可以像这样创建Joe Bloggs用户目录的快捷方式:

CreateUserDirShortcut "C:\shortcuts", "Bloggs, Joe", "C:\userdirs\27")