Ms access 根目录中的超链接位置

Ms access 根目录中的超链接位置,ms-access,vba,Ms Access,Vba,我刚刚在Access中创建了一个数据库,它将有一个子目录中PDF文件的超链接 我可以简单地复制粘贴整个目录位置,但是如果我更改了文件的位置(或者如果我们被迫将它们移动到其他地方),我将不得不重命名所有文件 似乎更好的解决方案是告诉Access在“根”目录中查找并搜索这个可能永远不会更改的特定文件夹名称 这可能吗 如需澄清: Database location: X:/Somewhere/Over/Here.ADB PDF file location: X:/Somewhere/Over/The

我刚刚在Access中创建了一个数据库,它将有一个子目录中PDF文件的超链接

我可以简单地复制粘贴整个目录位置,但是如果我更改了文件的位置(或者如果我们被迫将它们移动到其他地方),我将不得不重命名所有文件

似乎更好的解决方案是告诉Access在“根”目录中查找并搜索这个可能永远不会更改的特定文件夹名称

这可能吗

如需澄清:

Database location: X:/Somewhere/Over/Here.ADB

PDF file location: X:/Somewhere/Over/There/123abc.PDF
最好告诉access在位于.ADB“root”目录的“There”文件夹中搜索,然后打开123abc.PDF

另一种方法是输入PDF位置值,如下所示:

X:/Somewhere/Over/There/123abc.PDF

X:/Somewhere/Over/There/456def.PDF... etc.

但是,如果数据库的位置更改为,例如
X:/where/Else/
,则我需要重命名所有位置。

如果我正确理解您要查找的内容,您可以使用以下方法:

Private子表单_Load()
作为字符串的Dim strDBPath
strDBPath=CurrentProject.Path&“\”
Me.Textbox1.Hyperlink=strDBPath&“pdf\123abd.pdf”
Me.Textbox2.Hyperlink=strDBPath&“pdf\456efg.pdf”
端接头
尽管这是基于您的前端文件位于“根”文件夹中

在注意到您的评论后,我将立即更新另一个使用后端文件的选项

Private子表单_Load()
作为字符串的Dim strDBPath
strDBPath=Left(Mid(当前db.TableDefs(“TableName”).Connect,11),Len(Mid(当前db.TableDefs(“TableName”).Connect,11))-10)
Me.Textbox1.Hyperlink=strDBPath&“pdf\123abd.pdf”
Me.Textbox2.Hyperlink=strDBPath&“pdf\456efg.pdf”
端接头

10是后端名称的长度,因此我真的想不出任何方法来更动态地调整它。我觉得有些事情有点混乱,也许有一个更简单的方法,但这是你如何做你所寻找的基础工作

与根目录相关的Access数据库在哪里?Access数据库是X:/somewhere/over/here.adb我希望pdf文件是X:/somewhere/over/there/abc.pdf。但我的想法是,“root”应该是数据库所在的位置,即X:/somewhere/over/。通过这种方式,我可以告诉access查看“abc.pdf”的“there”文件夹。您有拆分数据库还是单文件数据库?如果它被拆分,我假设您的“根”文件夹位于后端文件所在的位置?是的,数据库被拆分,目前两个文件位于同一位置(我可能没有想到这一点)。。后端文件位置是我希望成为“根”文件夹的位置,是的。前端当然会在每台计算机上的不同位置。我在下面发布了一些示例代码,请让我知道这是否是您所寻找的。谢谢,这很有意义。我目前的计划是创建一个包含PDF地址的列。我对在access中使用“代码”相对不熟悉,从columnA中获取“根位置”,从columnB中获取“PDF名称”,然后将这些值粘贴到columnC中会更容易吗?在某种程度上,这似乎就是它所做的,但我还是不熟悉在access中使用这种类型的代码——没有时间像现在这样开始编程:-)