2017-03-02 21 views
0

我有一个访问窗体与ComboBox控件的附加recorset包含一个空值作为其中一个行的索引,并设置为显示记录集的第二列。访问组合框中的空索引值

当我打开列表时,可以看到所有行,包括以Null作为索引的行,并且我可以选择它,但只要AfterUpdate事件结束,显示的文本就会被删除。

我想显示Null的第二列,但我无法实现这一点。我想这是由于空等于没有(甚至不是自己),但有没有解决方法?数据库的

例子:

Id  Description 
+------+-------------+ 
|  | Default  | 
|1  | Choice 1 | 
|2  | Choice 2 | 
. 
. 
. 

如果我选择在ComboBox“默认”,该值正确设置为空,但显示的文本是空的。如果我选择'选择1'(或'选择2'),该值被正确设置为1(或2),并且组合框中的显示值为'选择1'(或选择2)。

编辑:由于兼容性的原因,解决方案必须与Access 2007

回答

0

您可以使用MyCombo.ListIndex = 0挑中的组合框的第一个值工作。 这不会从内存中设置值,但应显示正确。

+0

不错的想法,但我无法在AfterUpdate()事件和Change()事件中设置Listindex = 0。你把它放在哪里? –

+0

其实这可能不是正确的属性 - 尝试Me.cboName = Me.cboName.Itemdata(0) - 对不起,我目前无法测试它。 – Minty

+0

有一个NULL对于一个ID是不好的做法。赋值为零。如果你不能在底层表中做到这一点,那么创建一个查询并将查询设置为组合框的记录源:查询基本上将NZ([ID],0)作为ID2。所以你的默认结果是ID = 0这应该解决你的问题。 –