【发布时间】:2018-11-15 04:29:51
【问题描述】:
我尝试使用以下命令预选组合框中的第一项:
Private Sub Form_Load()
Me.ProjectBox = Me.ProjectBox.ItemData(0)
End Sub
但它说 ItemData(0) 为空。我认为这是因为它在查询(行源属性)之前运行以填充组合框。有没有办法在组合框被填充后运行它
【问题讨论】:
-
我刚刚在我的一个表单上使用未绑定的 ComboBox 尝试了相同的代码,它运行良好,所以至少在我的情况下,RowSource 查询已经执行并且结果已经填充了 ComboBox 的列表。您应该考虑何时以及如何指定 RowSource。是在设计器中设置还是在 Form_Open() 事件中设置,以便在 Form_Load() 事件处理程序期间查询可用?
-
RowSource 查询有多少列以及为 ColumnCount 和 BoundColumn 属性设置了哪些值?还有 ColumnWidths (带有's')属性? ItemData 集合不一定返回显示的值,而是绑定的值。 (即使控件是“未绑定的”,即没有为表单数据指定字段,术语 bound 也用于指示 ComboBox 将返回 RowSource 查询的哪一列。 Value 属性和 ItemData 集合。)发布我提到的所有 ComboBox 属性的值以获得进一步帮助。
-
ColumnCount:2,列宽:0";1",BoundColumn:0。我也尝试在 Form_Load() 中使用它,但出现更多错误,因为尚未加载表单上的任何其他内容。我也已经尝试过重新查询,但这对我没有什么不同。我忘记提到的一件事是,当我在 Form_Load() 中运行 Me.ProjectBox = Me.ProjectBox.ItemData(0) 时,它会阻止 ComboBox 填充任何条目。