【问题标题】:List Box - first item remains selected列表框 - 第一项保持选中状态
【发布时间】:2019-05-16 14:04:36
【问题描述】:

我在 ms-access VBA 表单中创建了一个具有以下属性的列表框:

OverlapFlags =85
IMESentenceMode =3
Left =56
Top =282
Width =8160
Height =963
TabIndex =5
Name ="xOnlineTypen"
ControlSource ="[OAT_NAME]"
RowSourceType ="Table/Query"
RowSource ="SELECT [OAT_NAME], [LFD] from [TABLE]"
OnDblClick ="[Event Procedure]"
ControlTipText ="Die unterstützten Onlineantragstypen"
GUID = Begin
    0x463f...bb06f69
End

LayoutCachedLeft =56
LayoutCachedTop =282
LayoutCachedWidth =8216
LayoutCachedHeight =1245
Begin
    Begin Label
        OverlapFlags =85
        Left =60
        Width =2295
        Height =240
        Name ="Bezeichnungsfeld159"
        Caption ="Unterstütze Antragstypen:"
        GUID = Begin
            0x7f1ed40...c4f9c7ee
        End
        LayoutCachedLeft =60
        LayoutCachedWidth =2355
        LayoutCachedHeight =240
    End
End

问题是,当我显示表单时,即使我尝试更改第一项,它仍然保持选中状态。当我用鼠标单击列表中的第二个项目时,会发出一声哔哔声,但没有其他反应。

我已经尝试删除列表框并重新创建它(以防列表框损坏),但没有成功。我还尝试更改一些属性(多选、ControlSource、RowSource、BoundColumn,...),但没有任何改变。

这是为什么呢?

什么

【问题讨论】:

  • 为什么要使用代码建立列表框?代码在什么事件中?标记为 VBA 但看起来不像 VBA。你有一个名为 TABLE 的表?
  • 列表框是由设计器创建的(和往常一样)。此“代码”是文件的一部分,在您使用“SaveAsText”功能导出表单时创建。我这样做是因为我不想手动输入所有属性。并且表 [TABLE] 不称为 [TABLE]。我只是不想告诉互联网我公司的表是如何命名的。
  • 我从未导出过表单。你为什么不发布相关代码?我当然看不出属性有什么问题。为什么使用实际的表名会成为问题?
  • "为什么不发布相关代码?"因为我没有写任何代码。一切都是由设计师创造的。
  • 属性列表显示 OnDblClick 事件已设置为[Event Procedure],这意味着 VBA 代码。因此,如果您没有在过程中编写任何代码,那么没有什么可以阻止列表框工作。抱歉,没有要分析的代码,我无法与您的列表框交互,因此无法提供解决方案。

标签: vba ms-access listbox


【解决方案1】:

我发现了我的问题。它是属性:ControlSource

据我了解:如果属性 ControlSource 已填写,则列表框会尝试将当前选择写入数据库。由于列表框仅供阅读,因此无法做到这一点,因此系统锁定了选择。

所以我不得不清空 ControlSource 属性,一切都很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 2012-08-25
    • 2016-06-19
    • 2010-09-19
    • 2020-03-31
    • 2017-12-25
    • 1970-01-01
    相关资源
    最近更新 更多