3

我正在尝试在 Access 2007“问题”模板/示例数据库中复制一个功能。当您打开“问题列表”表单并单击一个 ID 时,它的行为就像一个超链接并在另一个表单中打开该记录。

我怎样才能复制这个?我不太喜欢使用 Access 的“创建宏”功能,如果可能的话,我更喜欢使用 VBA 编辑器。

在此先感谢您的帮助。

4

2 回答 2

4

我没有检查该模板数据库,但您的描述听起来像是您可以使用DoCmd.OpenForm处理的内容。

假设您的表单包含一个名为txtID的文本框,该文本框绑定到表单记录源中的数字字段ID 。为文本框的单击事件创建一个 VBA 过程,以将当前ID值作为OpenForm WhereCondition参数传递。(假设下一个表单的记录源也包括该数字ID字段。)

Private Sub txtID_Click()
    Const cstrForm As String = "YourNextFormName" ' <-- change this
    DoCmd.OpenForm cstrForm, WhereCondition:="[ID]=" & Me.txtID
End Sub

如果字段的数据类型是文本而不是数字,请在WhereConditionID中的值周围加上引号。

WhereCondition:="[ID]='" & Me.txtID & "'"
于 2013-07-16T15:19:00.733 回答
4

您要做的是首先将您感兴趣的文本字段设置为超链接。您可以通过Display As HyperlinkFormat选项卡中设置来执行此操作,Property Sheet或者您可以通过 vba 执行此操作,如下所示(尽管它似乎在视觉上存在错误,即可点击链接但未显示为这样)

myTextBox.DisplayAsHyperlink = acDisplayAsHyperlinkOnScreenOnly

完成后,创建一个Click事件。在子例程中,您可以运行代码以打开使用记录号(或适当的参数)过滤的表单

DoCmd.OpenForm "myFormName", acNormal, , "[ID]=" & Nz([Id], 0)
于 2013-07-16T15:36:35.357 回答