能编译成功
有一个pagecontrol组件
每次点的时候
报错
access violation at address 00484ecb in module xxx.exe
有两个adoquery组件

解决方案 »

  1.   

    试试用一个adoquery  然后在每个tabsheet的onshow事件里设置adoquery
    adoquery.close;
    .........sql.clear;
      

  2.   

    我试试看
    procedure TForm1.PageControl1Change(Sender: TObject);
    begin
      Case PageControl1.ActivePageIndex of
        0:begin
            ADOQuery1.Close;
            ADOQuery1.SQL.Clear;
            ADOQuery1.SQL.Add('Select XuanZeTi.BH,Type.TypeName,XuanZeTi.TM,XuanZeTi.A,XuanZeTi.B,XuanZeTi.C,XuanZeTi.D,XuanZeTi.DA,XuanZeTi.CZ,NYD.NYD,XuanZeTi.TypeID,XuanZeTi.NY from XuanZeTi,Type,NYD where XuanZeTi.TypeID=Type.TypeID and XuanZeTi.NY=NYD.BH ORDER BY XuanZeTi.BH ASC');
            ADOQuery1.Open;
            XZ_DBGrid.Fields[0].DisplayLabel:='题号';
            XZ_DBGrid.Fields[1].DisplayLabel:='题型';
            XZ_DBGrid.Fields[2].DisplayLabel:='题目';
            XZ_DBGrid.Fields[3].DisplayLabel:='选项A';
            XZ_DBGrid.Fields[4].DisplayLabel:='选项B';
            XZ_DBGrid.Fields[5].DisplayLabel:='选项C';
            XZ_DBGrid.Fields[6].DisplayLabel:='选项d';
            XZ_DBGrid.Fields[7].DisplayLabel:='答案';
            XZ_DBGrid.Fields[8].DisplayLabel:='所在章节';
            XZ_DBGrid.Fields[9].DisplayLabel:='难易度';
            XZ_DBGrid.Fields[0].DisplayWidth:=5;
            XZ_DBGrid.Fields[1].DisplayWidth:=10;
            XZ_DBGrid.Fields[2].DisplayWidth:=20;
            XZ_DBGrid.Fields[3].DisplayWidth:=20;
            XZ_DBGrid.Fields[4].DisplayWidth:=20;
            XZ_DBGrid.Fields[5].DisplayWidth:=20;
            XZ_DBGrid.Fields[6].DisplayWidth:=20;
            XZ_DBGrid.Fields[7].DisplayWidth:=5;
            XZ_DBGrid.Fields[8].DisplayWidth:=10;
            XZ_DBGrid.Fields[9].DisplayWidth:=5;
          end;
        1:begin
            ADOQuery1.Close;
            ADOQuery1.SQL.Clear;
            ADOQuery1.SQL.Add('Select * from TianKong');
            ADOQuery1.Open;
            TK_DBGrid.Fields[0].DisplayLabel:='题号';
            TK_DBGrid.Fields[1].DisplayLabel:='题型';
            TK_DBGrid.Fields[2].DisplayLabel:='题目';
            TK_DBGrid.Fields[3].DisplayLabel:='空 1';
            TK_DBGrid.Fields[4].DisplayLabel:='空 2';
            TK_DBGrid.Fields[5].DisplayLabel:='空 3';
            TK_DBGrid.Fields[6].DisplayLabel:='空 4';
            TK_DBGrid.Fields[7].DisplayLabel:='空 5';
            TK_DBGrid.Fields[8].DisplayLabel:='应填空数';
            TK_DBGrid.Fields[9].DisplayLabel:='难易度';
            TK_DBGrid.Fields[10].DisplayLabel:='所在章节';
          end;
        2:begin
            ADOQuery1.Close;
            ADOQuery1.SQL.Clear;
            ADOQuery1.SQL.Add('Select * from JianDaTi');
            ADOQuery1.Open;
            JD_DBGrid.Fields[0].DisplayLabel:='题号';
            JD_DBGrid.Fields[1].DisplayLabel:='题型';
            JD_DBGrid.Fields[2].DisplayLabel:='题目';
            JD_DBGrid.Fields[3].DisplayLabel:='答案';
            JD_DBGrid.Fields[4].DisplayLabel:='难易';
            JD_DBGrid.Fields[5].DisplayLabel:='所在章节';
          end;
        3:begin
            ADOQuery1.Close;
            ADOQuery1.SQL.Clear;
            ADOQuery1.SQL.Add('Select * from JiSuanTi');
            ADOQuery1.Open;
            YLLS_DBGrid.Fields[0].DisplayLabel:='题号';
            YLLS_DBGrid.Fields[1].DisplayLabel:='题型';
            YLLS_DBGrid.Fields[2].DisplayLabel:='题目';
            YLLS_DBGrid.Fields[3].DisplayLabel:='答案';
            YLLS_DBGrid.Fields[4].DisplayLabel:='难易';
            YLLS_DBGrid.Fields[5].DisplayLabel:='所在章节';
          end;
        4:begin
            ADOQuery1.Close;
            ADOQuery1.SQL.Clear;
            ADOQuery1.SQL.Add('Select * from XiTongSheJi');
            ADOQuery1.Open;
            XTSJ_DBGrid.Fields[0].DisplayLabel:='题号';
            XTSJ_DBGrid.Fields[1].DisplayLabel:='题型';
            XTSJ_DBGrid.Fields[2].DisplayLabel:='题目';
            XTSJ_DBGrid.Fields[3].DisplayLabel:='答案';
            XTSJ_DBGrid.Fields[4].DisplayLabel:='难易';
            XTSJ_DBGrid.Fields[5].DisplayLabel:='所在章节';
          end;
        5:begin
            ADOQuery1.Close;
            ADOQuery1.SQL.Clear;
            ADOQuery1.SQL.Add('Select * from XiTongCZ');
            ADOQuery1.Open;
            XTCZ_DBGrid.Fields[0].DisplayLabel:='题号';
            XTCZ_DBGrid.Fields[1].DisplayLabel:='题型';
            XTCZ_DBGrid.Fields[2].DisplayLabel:='题目';
            XTCZ_DBGrid.Fields[3].DisplayLabel:='答案';
            XTCZ_DBGrid.Fields[4].DisplayLabel:='难易';
            XTCZ_DBGrid.Fields[5].DisplayLabel:='所在章节';
          end;
        6:begin
            ADOQuery1.Close;
            ADOQuery1.SQL.Clear;
            ADOQuery1.SQL.Add('Select * from ZhangJie');
            ADOQuery1.Open;
            ZJ_DBGrid.Fields[0].DisplayLabel:='序号';
            ZJ_DBGrid.Fields[1].DisplayLabel:='章节序号';
            ZJ_DBGrid.Fields[2].DisplayLabel:='章节名';
          end;
      end;
    end;
    以上是源码
      

  3.   

    你的网格组件用到的那么多fields在设计的时候加好了吗?
      

  4.   

    对dbgrid的属性Columns属性进行编辑了,如果数据库连接好了,只要右键菜单add all fields就可以了,还可以控制哪些字段显示