奇怪的问题,困扰了我一天一夜,还没解决。关于master/detail表的dblookupcombobox控件的错误 ( 积分: 100 )

  • 主题发起人 主题发起人 zhangzuhua
  • 开始时间 开始时间
Z

zhangzuhua

Unregistered / Unconfirmed
GUEST, unregistred user!
有如下三表:<br>客户(客户ID,客户名称)<br>账户(帐户ID,客户ID,账户名称)<br>存款(存款ID,客户ID,账户ID)<br>(ID类字段全部为uniqueidentifier)<br>表的关系说明如下:<br>一个客户对应多个账户<br>一笔存款对应一个账户<br>一个账户则可对应多笔存款<br>希望实现的功能:<br>录入存款台帐<br><br>实现过程:<br>客户、账户建立master/detail关系。客户为master表,账户为detail表。<br>存款增加2个new&nbsp;field,类型为lookup型<br>存款.newfield1:客户名称<br>&nbsp;&nbsp;&nbsp;&nbsp;指向客户表的客户ID,return客户名称(具体的设置过程略)<br>存款.newfield2:账户名称<br>指向账户表的账户ID,return账户名称(具体的设置过程略)<br>新建两个dblookupcombobox.,分别指向存款表的两个新增字段。<br><br>录入台帐过程很顺利:<br>点选客户名称对应的dblookupcombobox后,账户对应的dblookupcombobox的items动态更新为该客户的所有已有账户,点选账户对应的dblookupcombobox并保存后,存款表能够正确保存相应的客户ID,账户ID。<br><br>浏览数据的时候,问题出来了:<br>当点击存款表对应的DBGRID某条记录后,账户对应的dblookupcombobox有时候不能(大多数时候不能)正确显示账户名称,要么为空白,要么为错误的账户名称。我通过测试dblookupcombobox的value属性,发现该属性是对的。这就是说:dblookupcombobox以正确的账户ID显示出错误的账户名称。<br>进一步测试发现:当改变存款DBgrid中相应记录时,客户表(master表)正确卷动定位,账户表能刷新至客户表当前客户的全部账户,但不能正确定位,从而导致其text(账户名称)显示紊乱。<br><br>(注:数据库为sqlserver,但我可以保证,这个应该是与数据库无关的)<br>百思不得其解,茶不思,饭不香,觉不着。请高手搭救则个。
 
后退
顶部