You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microsoft Access跳转按钮未生效 需先点击Shoplink列表框问题咨询

问题根因
  • 列表框Liste_Shoplink在执行Requery刷新数据后,不会自动选中任何条目,未选中状态下列表框的默认Value属性为空值,所以If [Liste_Shoplink] <> ""的判断条件不成立,跳转逻辑不会执行
  • 手动点击列表框相当于主动选中了对应条目,此时Value属性就会返回选中的超链接内容,所以代码可以正常运行
修复方案

首先补充你现有代码的语法遗漏:Kombinationsfeld47_AfterUpdate事件缺少End Sub闭合,先补全后可以选择以下任意一种方式解决问题:

方式1:刷新列表框后自动选中第一条条目

在组合框更新事件的Requery语句后添加自动选中逻辑,刷新完数据直接给列表框赋值,无需手动点击:

Private Sub Kombinationsfeld47_AfterUpdate()   ' 这是选中操作对应的事件
    Me.Liste_Shoplink.Requery  ' 存储超链接的列表框
    ' 新增代码:列表框有数据时自动选中第一条
    If Me.Liste_Shoplink.ListCount > 0 Then
        Me.Liste_Shoplink = Me.Liste_Shoplink.ItemData(0)
    End If
End Sub

Private Sub shoplink_Click()
    ' 用Nz函数兼容空值判断,避免空值对比报错
    If Nz(Me.Liste_Shoplink, "") <> "" Then
        Dim shoplink  As String
        shoplink = Me.Liste_Shoplink
        Application.FollowHyperlink shoplink
    Else
        MsgBox "No Product in shop"
    End If
End Sub

方式2:点击按钮时直接读取列表框第一条数据(无需选中状态)

如果不需要列表框显示选中效果,可以直接修改按钮点击逻辑,不依赖列表框的选中状态:

Private Sub shoplink_Click()
    If Me.Liste_Shoplink.ListCount > 0 Then
        Dim shoplink  As String
        shoplink = Me.Liste_Shoplink.ItemData(0)
        Application.FollowHyperlink shoplink
    Else
        MsgBox "No Product in shop"
    End If
End Sub

内容的提问来源于stack exchange,提问作者ExRain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:30:01