VBA MSHFLEXGRID错误的.CLICK事件中的.ROW信息

问题描述 投票:0回答:1

[我正在使用VBA MSHFLEXGRID,实际上以相同的形式使用了2个网格,一个在另一个网格下面,所以当我在第一个网格中选择一行时,第二个网格显示有关第一个网格行选择的信息。

嗯,问题在于第二个网格在第一个网格中选择了一行,而第二个网格中没有信息(我通过自己的网格记录集放置了数据,如果我不希望它显示信息,我在加载过程中退出,这很疯狂,而Click事件中的.ROW属性开始返回一个固定数字,例如4,而不是实际单击的行。始终代表大于该行的数字最后一个(甚至是超出网格的一个)。我也尝试了.MOUSEROW,而这个总是一直返回0(当网格变得疯狂时)。

第一个网格永远不会发生,只有第二个网格才会发生。如果没有有关该行被单击的真实信息,我无能为力。我已经看到,以不同的分辨率可以解决问题。在1360x768之类的低分辨率下似乎不会发生,但在1920x1080和2560x1440上会发生。

ms-access access-vba mshflexgrid
1个回答
0
投票

已解决!我正在尝试更多的案例,以试图理解为什么有时在随机案例中发生这种情况,并最终找到了它。当您直接将记录集设置到网格(Set Grid.Recordset = xxxx)并且此xxx为空时,会出现问题。是,EOF。所以我在先执行.Clearstructure,然后执行SET。在此之后,如果我用一个非空的记录集进行了另一个SET(第二个网格的另一个选择),那么它会发疯。

因此,我要做的就是简单地首先分配一个记录集对象,以检查SQL查询是否为空,如果不为空,则仅将记录集分配给网格。噢,天哪,很长一段时间后,这让我发疯了。

© www.soinside.com 2019 - 2024. All rights reserved.