我在编写学籍管理程序时,在'建立学校'(学校名存放在xuexiao数据表中的)窗体,在窗体中有一个dbgrid控件,输入学校名后,保存(用post函数)。又创建一个窗体用来创建专业名(存放在zhuanye表),窗体中有一个dbgrid(显示学校名、专业名、学制、代号等,用到了adotable1),一个combobox(用它来显示学校名,用到了adotable2).
  这时,问题出现了。运行创建专业名窗体时,发现combobox不显示学校名。甚至
在重新运行'建立学校'窗体后,发现上一次输入的学校名也不在。(我在窗体的creat事件中用adotable1.connect,adotable2.connect动态连接数据库)
          我希望各位大虾帮忙!

解决方案 »

  1.   

    在oncreate事件里写adotable2.active:=True;
    combobox1.clear;
    while not adotable2.eof do
    begin
     combobx1.item.add(adotable2.fieldbyname('学校名').asstring);
     adotable2.next;
    end;
      

  2.   


    大虾,再帮帮忙。我重编写创建学校的frm_cj_xuexiaoming窗体时
    ,运行程序,增加的学校名后存盘。重新打开该窗体可看见刚增加的学校。退出程序,重新运行程序,再打开该窗体,发现无新增加的记录。打开accces的数据库文件,发现该表无新添记录。 代码如下:
    procedure TFrm_cj_xuexiaoming.Button3Click(Sender: TObject);
    begin
    if ifupdate=true then adotable1.post;
    end;procedure TFrm_cj_xuexiaoming.FormCreate(Sender: TObject);
    begin
    ADOtable1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
                                   MyPath+'mdb\xjgl.mdb;Jet OLEDB:Database Password='+
                                   MyPassW+';Persist Security Info=False';
     ADOTable1.TableName:='xuexiaoming';
      try
        ADOTable1.Open;
      except
        MessageBox(0,'无法打开数据库','错误',MB_OK);
      end;
      ifupdate:=false;
      //adotable1.Active:=true;
    end;procedure TFrm_cj_xuexiaoming.Button1Click(Sender: TObject);
    begin
    adotable1.Append;
    end;