Ms access MS Access中链接的用户友好表单

Ms access MS Access中链接的用户友好表单,ms-access,vba,Ms Access,Vba,我正在尝试创建具有以下行为的窗体: 当它为空时单击它将打开插入超链接的对话框窗口 当有超链接时,单击它将打开超链接 单击附近的“清除”按钮可清除表单,删除超链接(如果存在) 我现在被第二步困住了。超链接插入窗口的代码如下: Private Sub PSIC_Click() Me.[PSIC].SetFocus On Error GoTo browse_stop RunCommand acCmdInsertHyperlink browse_stop: End Sub 当我尝试应用不同的if-th

我正在尝试创建具有以下行为的窗体:

  • 当它为空时单击它将打开插入超链接的对话框窗口
  • 当有超链接时,单击它将打开超链接
  • 单击附近的“清除”按钮可清除表单,删除超链接(如果存在)
  • 我现在被第二步困住了。超链接插入窗口的代码如下:

    Private Sub PSIC_Click()
    Me.[PSIC].SetFocus
    On Error GoTo browse_stop
    RunCommand acCmdInsertHyperlink
    browse_stop:
    End Sub
    

    当我尝试应用不同的if-then变体时,它并没有像预期的那样工作。要么我无法正确应用if-then,要么我无法确定表单为空。

    要在MS Access中从表单打开超链接,请执行以下操作:

    在“设计”视图中,确保超链接位于其自己的文本框中,然后转到“属性页”,然后向下走到一半,您应该会看到超链接地址的选项。在此处添加超链接的地址

    如果要单击图像并使其打开超链接,请在图像上单击鼠标右键转到超链接

    超链接文本框的
    OnClick()
    事件将是:

    Private Sub PSIC_Click()
    On Error GoTo browse_stop
    If ISNULL(Me!PSIC) Then
      RunCommand acCmdInsertHyperlink
    End If
    browse_stop:
    End Sub
    
    Private Sub cmdClearForm_Click()
    Me!PSIC = NULL
    End Sub
    
    我删除了
    SetFocus
    ,因为点击文本框会自动设置焦点,但是如果你出于其他原因需要它,它不会真的伤害任何东西

    “清除表单”命令按钮的
    OnClick()
    事件是:

    Private Sub PSIC_Click()
    On Error GoTo browse_stop
    If ISNULL(Me!PSIC) Then
      RunCommand acCmdInsertHyperlink
    End If
    browse_stop:
    End Sub
    
    Private Sub cmdClearForm_Click()
    Me!PSIC = NULL
    End Sub
    

    谢谢除了一个问题外,它工作正常。如果存在链接,我单击它,它将打开两次。旧的输入字段没有这样的问题。我不知道是什么导致了这种行为。@wintermute文本框的超链接属性是空的吗?它应该是,但如果是并且仍然打开两次,请在
    FollowHyperlink
    行上设置一个断点,然后在表单视图中单击该超链接。它在休息前打开一次吗?@wintermute另外,
    True
    参数会打开一个新的浏览器窗口,因此您可以尝试设置为
    false
    ,并查看它的行为。看起来它会在函数结束后(我可能在这里使用错误的术语)第二次打开链接。因此,第一次使用
    FollowHyperlink
    打开链接,第二次使用默认的超链接单击处理程序打开链接。将
    True
    更改为
    False
    没有帮助。我将尝试删除
    FollowHyperlink
    ,看看它是否有效。@我已经编辑了代码,默认情况下允许处理程序引导超链接。