MS Access 365 - 创建包含链接文件的子表单
MS Access 365 - Create SubForm Containing Linked Files
我创建了一个 table 和表单来跟踪销售机会。我希望用户能够将我们服务器上的关联文件“连接”到每个机会。例如,他们可能喜欢指向报价的机会。
由于将文件附加到数据库是一个 debatable 动作,我选择保存路径并希望使用 FollowHyperlink
导航和打开文件。
我的策略是创建一个包含与特定机会关联的链接的子表单。然后用户可以单击子表单中的子表单昵称以打开关联的文件。
通过网上冲浪,我设法创建了一个宏,允许用户将所选文件和路径存储在名为 LinkLocation
的列中,通过 [=13= 为条目分配昵称],并将昵称存储在名为 LinkName
的列中。此宏按预期工作。
编辑:代码共享。
Sub test()
Dim f As Object
Dim strSQL As String
Dim strShorthand As String ' Short hand name for display in subform.
Dim strFullFilePath As String ' Full file path
Set f = Application.FileDialog(3)
f.allowMultiSelect = False
f.Show
strFullFilePath = f.SelectedItems(1)
strShorthand = InputBox("Enter the shorthand name here.")
strSQL = "INSERT INTO tblLinks (LinkLocation, LinkName) Values ('" &
strFullFilePath & "','" & strShorthand & " ');"
DoCmd.SetWarnings False
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True
End Sub
我有两个问题。
当我单击以在链接到 tblLinks
的子表单中创建新记录时,我的宏运行并且数据被正确存储。但是,新创建的记录并没有显示在子表单中。
如何创建双击事件以便 FollowHyperlink
正确参与并打开有问题的文件?
我在网上找不到这两个问题的答案。
我已经为 Excel 编写了大量复杂的 VBA,但是 Access 对我来说是全新的。欢迎您推荐任何资源。
提前致谢。
将值输入表单的绑定控件而不是 运行 INSERT 操作,问题将消失。代替 LinkName 的 InputBox,只需在表单上输入文本框即可。如果打算输入新项目,请确保焦点位于新记录行。然后在子表单后面编码:
Me.LinkLocation = strFullFilePath
否则,必须重新查询或刷新表单才能显示新记录。同样,如果代码在子表单后面,只需:Me.Requery
.
至于双击事件,您已经知道如何创建 VBA 代码,因此使用 FollowHyperlink 命令为此事件做同样的事情。可以双击文本框或单击命令按钮。格式化为看起来像可点击的超链接。将文本框设置为锁定状态,这样用户就不会意外编辑。
我创建了一个 table 和表单来跟踪销售机会。我希望用户能够将我们服务器上的关联文件“连接”到每个机会。例如,他们可能喜欢指向报价的机会。
由于将文件附加到数据库是一个 debatable 动作,我选择保存路径并希望使用 FollowHyperlink
导航和打开文件。
我的策略是创建一个包含与特定机会关联的链接的子表单。然后用户可以单击子表单中的子表单昵称以打开关联的文件。
通过网上冲浪,我设法创建了一个宏,允许用户将所选文件和路径存储在名为 LinkLocation
的列中,通过 [=13= 为条目分配昵称],并将昵称存储在名为 LinkName
的列中。此宏按预期工作。
编辑:代码共享。
Sub test()
Dim f As Object
Dim strSQL As String
Dim strShorthand As String ' Short hand name for display in subform.
Dim strFullFilePath As String ' Full file path
Set f = Application.FileDialog(3)
f.allowMultiSelect = False
f.Show
strFullFilePath = f.SelectedItems(1)
strShorthand = InputBox("Enter the shorthand name here.")
strSQL = "INSERT INTO tblLinks (LinkLocation, LinkName) Values ('" &
strFullFilePath & "','" & strShorthand & " ');"
DoCmd.SetWarnings False
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True
End Sub
我有两个问题。
当我单击以在链接到
tblLinks
的子表单中创建新记录时,我的宏运行并且数据被正确存储。但是,新创建的记录并没有显示在子表单中。如何创建双击事件以便
FollowHyperlink
正确参与并打开有问题的文件?
我在网上找不到这两个问题的答案。
我已经为 Excel 编写了大量复杂的 VBA,但是 Access 对我来说是全新的。欢迎您推荐任何资源。
提前致谢。
将值输入表单的绑定控件而不是 运行 INSERT 操作,问题将消失。代替 LinkName 的 InputBox,只需在表单上输入文本框即可。如果打算输入新项目,请确保焦点位于新记录行。然后在子表单后面编码:
Me.LinkLocation = strFullFilePath
否则,必须重新查询或刷新表单才能显示新记录。同样,如果代码在子表单后面,只需:Me.Requery
.
至于双击事件,您已经知道如何创建 VBA 代码,因此使用 FollowHyperlink 命令为此事件做同样的事情。可以双击文本框或单击命令按钮。格式化为看起来像可点击的超链接。将文本框设置为锁定状态,这样用户就不会意外编辑。