本人菜鸟,刚学DELPHI,做了个人事管理的软件,用的是DELPHI7.0+ACCESS;遇到了号几个问题,望高手给予解答,最好有原代码说明,ACCESS里主要有3个表,表1:部门信息(DEPARTMENT),表2:人员信息(PERSONINFO),表3:工资信息(salary),组件都用的是DBCOMBOX或DBEDIT.
1.如何在表1中判定部门编号或部门名称有重复?
2.想在人员信息中链接表一的部门名称和编码如何实现?
3.在人员信息中修改了照片,打印时还是原来的照片,要退出程序重新进入才可以看到.  

解决方案 »

  1.   

    1.如何在表1中判定部门编号或部门名称有重复? 
    用索引(因为ACCESS有两种索引,你选择无重复索引吧)
    2.想在人员信息中链接表一的部门名称和编码如何实现? 
    设计员工信息表和部门信息表的关系,级连删除和更新就可以了!
    3.在人员信息中修改了照片,打印时还是原来的照片,要退出程序重新进入才可以看到.  
    数据表.Requery
      

  2.   

    第一个问题想用ADOQUERY或ADOTABLE实现,如何实现?
    第二个问题两个表已设为主从表,但在具体程序界面上如何显示:比如我用DBCOMBOX控件链接了DEPARTMENT表里的“部门名称”,但如何在下拉框中显示“部门名称”这一列下面的值?
      

  3.   

    //1.用AdoQuery实现的思路是先用一个临时的AdoQuery来查询输入的部门名称是否有重复的,有就提示错误,无有就可以保存
    qTemp.Close;
    qTemp.SQL.Clear;
    qTemp.SQL.ADD('select * from DEPARTMENT where fName=:fName');
    qTemp.Parameters.ParamByName('fName').Value:=DBEdit.Text;
    qTemp.Open;
    if qTemp.RecordCount > 0 then
    begin
      showmessage('你输入的部门名称存在,请检查!');
    end
    else
    begin
      //保存到数据的代码
    end;
    //2.用DBCOMBOX控件链接了DEPARTMENT表里的“部门名称”,但如何在下拉框中显示“部门名称”这一列下面的值(也可以考虚直接用DBLookupComboBox1)
    qTemp.Close;
    qTemp.SQL.Clear;
    qTemp.SQL.ADD('select fName from DEPARTMENT');
    qTemp.Open;
    qTemp.First;
    While not qTemp.Eof do
    begin
      DBComboBox1.Items.Add(qTemp.Fields[0].AsString);
      qTemp.Next;
    end
      

  4.   

    第三个问题,我用的是QREPORT控件,报表显示不能即时更改图片,用了zqdue 说的数据表.Requery还是不行。
    还有我在人员资料里的照片读取问题。在论坛里找了很久,保存程序后在做别的操作,跳出“数据库路径不对”的错误,不知道该如何解决?