对此问题的警告是,我是2个月的Access 2016初学者程序员,但相信我对软件的相对有一些中级的知识,因为这几乎是我一直在做的事情最近两个月的工作时间。我现在也意识到,我在使用超链接字段时遇到了麻烦,因为大多数人认为它们比其价值更麻烦(至少在较旧的Access版本中,在2018年找到Access 2016信息和观点出人意料地有点困难..至少对我来说,因为我显然无法正确使用“ Google机器”,但是现在我有点太深了。
目前,我正在尝试部署新的数据库系统,但是在测试时遇到了一些问题。将我的.accdb文件转换为.accde文件后,右键单击时,“编辑超链接...”命令完全从快捷菜单中消失。我的老板真的希望此功能出现在最终产品中,因为他希望显示文件名,但链接到共享网络驱动器中的文件位置。我还需要他的小公司的文档控制能力,以便能够编辑超链接,但不希望它们使用.accdb文件,因为它们可能会无意中对设计进行更改,否则上帝会知道。
我试图使用此VBA模块制作自定义快捷菜单,该模块由AutoExec宏执行,并在打开数据库时运行。
Public Function CreateCustomRightClickMenu()
Const msoBarPopup As Long = 5, msoControlButton As Long = 1
' Create a shortcut menu named "CustomRightClickMenu"
With Application.CommandBars
With .Add(name:="CustomRightClickMenu", Position:=msoBarPopup, MenuBar:=False, Temporary:=True)
' Add cut command
.Controls.Add type:=msoControlButton, id:=21
' Add copy command
.Controls.Add type:=msoControlButton, id:=19
' Add paste command
.Controls.Add type:=msoControlButton, id:=22
' Add hyperlink command.
.Controls.Add type:=msoControlButton, id:=1576
' Add edit hyperlink command.
.Controls.Add type:=msoControlButton, id:=1577
End With
End With
End Function
我可以使此功能在.accde文件中正常工作,但是“ Edit Hyperlink ...”命令仍然不可用-它显示为灰色。 有什么方法可以覆盖它吗?
我能找到的关于为什么的唯一信息是因为编译的.accde文件限制了所有设计工具。我认为这种解释相当……乏味。编辑超链接是否构成设计工具?那么,在自动化系统中,超链接字段将如何具有优势?所谓自动化,是指可以在没有DBA的情况下整天自由运行的后台文件,并更新位于显示文本下方的文件地址。我将在一个半月后到达该国的另一端,并且再也无法在后端浸洗脚趾。
此外,我在早期版本的Access中看到了许多解决此问题的方法,但在2016年却没有。所以我的问题是,尤其是2016年版本的问题是什么使得它变得如此困难? 或者,可以完全做到这一点吗?
或者,我已经考虑过使用附件,并确保它们不会使您的系统肿,因为Access会压缩文件。经过测试后,我可以确定情况并非如此。我将一个900kb .pdf文件附加到数据库副本中的3个单独的记录中,并且正如预期的那样,.accdb文件的大小增加了约2700kb。压缩和修复对最终文件大小(3,974kb)没有影响。 900kb的文件对我的系统而言并不现实,如果我的数学正确,那么如果我每条记录有3个50kb的文件,那么我应该能够在2GB Access数据库中存储大约11,000-13,000条记录,减去1000-2000即可我的访问对象的空间。这是一个现实的计算,如果尝试这种方法会遇到什么问题?
编辑:昨天简短浏览了此网页后:
https://codekabinett.com/rdumps.php?Lang=2&targetDoc=access-hyperlink-data-type
我经过了进一步的考虑,意识到我可以让我们的Doc控件以“ DisplayText#FileFullPathway#”格式输入超链接,而忽略子地址和滚动提示文本。
到目前为止,一切都很好。
然后发生了一些有趣的事情。我今天发送了一个beta版本的.accde文件供DC使用,当我让她测试不相关的内容时,“编辑超链接...”工具非常有用(昨天在她的同一台计算机上,该命令可能不存在,或者如果我有CustomMenu设置,则该命令显示为灰色)。我已经从整个数据库中删除了自定义菜单,没有任何与菜单相关的VBA模块,并且窗体的ShortcutMenu属性现在为空。您可能以为我会放心,但这现在更困扰我-如果我不让谁做,那又怎么会在浪费所有时间来解决问题之前昨天不在呢?也许我应该拥有该菜单命令,而昨天它只是被窃听了,但是昨天我在Googlesphere上的旅行却表明不是这样。这使我疯狂。目前,我的问题已解决,但我仍然想知道这里发生了什么。