我是Access编程新手,我正在尝试确定以连续形式为每行绑定未绑定文本框控件的正确方法。
举个例子:
我需要一个包含发票的行的表单,其中包含所有可用设备类型的列。
我计划为每种设备类型提供未绑定的文本框,然后在加载每个Invoice行时,挂钩到类似OnRowDataBound的东西,我可以使用InvoiceItems表中的相应数据动态填充设备文本框。
示例:
表:
发票:InvoiceID,日期
InvoiceItems :EquipmentID,Rate,Hours
[2,40,1]
[3,20,3]
结果:
InvoiceID | Date | Shovel | Plow | DumpTruck
==================================================
1 5/10/2011 3 1 0
2 2/11/2011 1 0 1
然后每个文本框控件将挂钩到onDirty事件以更新相应的InvoiceItem行项。
答案 0 :(得分:2)
您将无法以连续形式或数据表视图形式执行此操作,因为更改一行上的ControlSource属性会影响所有行。
我不清楚为什么你甚至需要这个选项,但听起来你的数据/表可能没有正确设计或正确规范化。通常我会构建我的表格,以便您可以更改EquipType以显示此行的设备类型。看来你不知何故为不同的设备类型使用不同的字段。
假设您坚持使用当前的设计,您可以使用Union查询拼凑一个解决方案,但您的记录集将无法更新。
另一个建议是在表单上创建几个不同的文本框,并动态更改visible属性。但是,这充满了问题,因为您只会在所有行上一次显示其中一个。此外,当他们移动到下一个记录时你必须显示正确的那个,但是你将如何确定哪一个是正确的?
根据您所写的内容,您必须具有.Net编程经验。访问是一种不同的野兽,如果按照规则玩,它会很有效。试图绕过一些标准的Access行为或设计通常会导致程序员和用户都感到沮丧。我认为这是一个需要评估您要做的事情的情况,我建议您首先确保您的表架构是可靠的。也许你实际上已经过度规范化,需要回过头来撤消一些规范化。