如何在详细信息部分中使用绑定到空记录的组合框?

时间:2019-02-17 22:42:22

标签: ms-access combobox

在表单中,我正在详细信息部分显示数据行。 实际上,大约5%的行可能在一列中具有浮点值,我需要将其显示为组合框。有问题的列是从左连接产生的,因此它可能有一个浮点数,或者它可能为空,后面没有现有记录。我不想将100000行添加到表中只是为了在组合框中显示零,以免用户实际显示该特定记录。是的,我可以添加行,然后再删除它们,但这似乎很愚蠢。在我的一生中,我无法弄清楚如何使组合框的每一行默认为零,并且仍然可以选择。基本上,对于每一行,如果有一个值,则显示该值;否则,为零;如果需要,让用户选择一个新值。 VBA方面很容易。如果选择了非零值,则可以完全创建该行;如果用户将其更改为0,则可以删除该行。理想情况是将组合框绑定到NZ(myField,0)或类似的东西。当我尝试这样做时,组合框是不可选择的。

现在我的组合框是可选的,允许用户更改值,但显示空白,如果列为空,则不为零。

表单绑定到的SQL:

选择dbo.PersonClasses.ClassID,dbo.ClassDates.ClassDate,dbo.PersonClassHours.ClassHours 来自dbo.PersonClasses 内连接dbo.ClassDates ON dbo.PersonClasses.ClassID = dbo.ClassDates.ClassID 在dbo.People.PersonID = dbo.PersonClassHours.PersonID和dbo.ClassDates.ClassID = dbo.PersonClassHours.ClassID和dbo.ClassDates.ClassDate = dbo.PersonClassHours.ClassDate上向左连接dbo.PersonClassHours 我想将ClassHours表示为表单上每个记录的组合框,有效选择为0,.5、1、1.5、2、2.5。为了使用户保持简单,我希望预先选择0。现在是这样的:

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以将组合框的Format属性设置为

@;\0

如果字段值为Null,它将显示零。否则为实际值。

还需要设置的其他属性是Row Source TypeValue ListRow Source0;0.5;1;1.5;2;2.5

在查询中使用Nz()之类的函数来更改字段的值,实际上会创建一个只读的新字段。

根据您的情况,您需要该字段为可更新字段,因此您可以选择使用Format属性或Conditional Formatting