ACCESS数据库有两个表如下:
1、员工(字段:员工编号,姓名,性别,职务编号,家庭地址等)
2、职务(字段:职务编号,职务名称)窗体中上半部分有一个DBGridEh用于显示“员工”表中数据,只读不能修改,以及其它数据访问组件(如AdoQuery,DataSouce等)
下半部分有若干个DBEDIT用于增加或修改DBGRIDEH中选择的记录(即“员工”表数据)
其中有一个DBLookupComBoBox组件用于选择“职务”表中的数据问题如下:1、“员工”表中的“职务编号”字段为“职务”表中的“职务编号”的内容,如何使到在DbLookupComboBox中选择职务时,DBGridEh中显示的是职务名称,而不是职务编号;2、在增加或修改记录时,为了不让DBGRIDEH中的内容实时回显示,我用了AdoQuery1.DisableControls方法,但发现DbComBoBox及DBLookupComboBox等组件中的内容不能选择,如何解决?(说明:DBEdit,DBComBobox,DbLookupCombobox等组件连接到同一数据源DataSouce1,而DataSouce1连接到AdoQuery1,AdoQuery1.SQL内容为Select * from 员工);最好能提供源码我学习学习,谢谢了。

解决方案 »

  1.   

    1, 你写一个sql把两个表连起来就是了
     select a.*,b.职务名称 from 员工 a,职务 where 职务编号=b.职务编号
    就可以解决了2 使用catch进行更新就可以了
      

  2.   

    AdoQuery1.DisableControls 的作用是为了加快读取速度。第二种方法你可以采用缓存更新。将adoquery1的ApplyUpdates设为True;With DmBaseData.QGroup Do
    Begin
    DmBaseData.ShopDB.StartTransaction ;
    TryApplyUpdates;
    DmBaseData.ShopDB.Commit ;Except
    DmBaseData.ShopDB.Rollback ;
    Raise ;
    End;
    CommitUpdates; //{on success, clear the cache}End;
      

  3.   

    我也是新手 并且我不懂 SQL 第一个问题可不可以 把DBEDIT 指定的 table 设为DBGridEh 指定的 table的 从 table  这样点DBGridEh  的时候两个表的 指针会在一条记录上