我在网格中有一个组合框。表单有很多表(在init中打开并分配了别名)。网格具有属性
LinkMaster=EVENT
RecordSource设置为HEAT
网格中的列将controlSource设置为Heat.Event_no,当前控件为CmbEvent。 CmbEvent控件源设置为heat.event_no。一切都在网格中工作,除了......
当我从组合框中选择一个项目时,以下代码作为从Click事件调用的过程运行:
IF event.relay
SELECT RELAY
GO TOP IN RELAY
SET ORDER TO
GO OrigRelayRec IN RELAY
...
我遇到的问题是,除非我单步执行代码,否则别名()永远不会转到RELAY。无论它起始于什么别名(通常是HEAT),如果我在GO TOP中设置了一个断点,别名()显示为EVENT。如果我单步执行代码,它进入RELAY的唯一方法就是它。
为什么选择别名实际上没有选择别名?
答案 0 :(得分:2)
通常在这种情况下,我将焦点设置为网格以外的控件。问题是,由于网格具有焦点,因此它将始终保持选择的别名绑定到网格RecordSource。
所以在你的SELECT之前,你可以做类似" Thisform.cmdOK.SetFocus()" (除了网格之外,它可以是您表单上的任何控件)。这应该可以解决问题。