你试图访问了一个越界的数据,比如一个里LISTBOX只有3项,你却要访问第4项,就出错了

解决方案 »

  1.   

    没有什么循环呀!
    这是我的原码:
    var
    p:^integer;
    begin
     If List_Custom.Selected =nil then exit ;
      p:=list_Custom.Selected.Data;
      DataM.ADODataSet1.Close;
      DataM.ADODataSet1.CommandText:='select * from Custom where CNo='+ inttostr(P^);
      DataM.ADODataSet1.Open;
      If DataM.ADODataSet1.RecordCount <> 0 then
      begin
       FrmCustom_input.ECode.Text :=DataM.ADODataSet1.Fields[1].AsString ;
       FrmCustom_input.EName.Text :=DataM.ADODataSet1.Fields[2].AsString;
       FrmCustom_input.ETel.Text :=DataM.ADODataSet1.Fields[3].AsString ;
       FrmCustom_input.EMov.Text :=DataM.ADODataSet1.Fields[4].AsString ;
       FrmCustom_input.EAddress.Text :=DataM.ADODataSet1.Fields[5].AsString ;
       FrmCustom_input.CBCard.Text :=DataM.ADODataSet1.Fields[6].AsString ;
       FrmCustom_input.ECardNum.Text :=DataM.ADODataSet1.Fields[7].AsString ;
       FrmCustom_input.ShowModal ;
       If FrmCustom_input.bYesno =true then
       begin
        DataM.ADODataSet1.Close;
        DataM.ADODataSet1.Open;
        DataM.ADODataSet1.Edit;
        DataM.ADODataSet1.Fields[1].AsString :=FrmCustom_input.code ;
        DataM.ADODataSet1.Fields[2].AsString :=FrmCustom_input.name ;
        DataM.ADODataSet1.Fields[3].AsString :=FrmCustom_input.Tel ;
        DataM.ADODataSet1.Fields[4].AsString :=FrmCustom_input.Mov ;
        DataM.ADODataSet1.Fields[5].Asstring :=FrmCustom_input.Address ;
        DataM.ADODataSet1.Fields[6].Asstring :=FrmCustom_input.Card ;
        DataM.ADODataSet1.Fields[7].Asstring :=FrmCustom_input.CardNum ;
        Datam.ADODataSet1.Post;
        //
        list_Custom.Selected.Caption :=FrmCustom_input.code ;
        list_Custom.Selected.SubItems.Clear ;
        List_Custom.Selected.SubItems.Add(DataM.ADODataSet1.Fields[2].asstring);
        List_Custom.Selected.SubItems.Add(DataM.ADODataSet1.Fields[3].asstring);
        List_Custom.Selected.SubItems.Add(DataM.ADODataSet1.Fields[4].asstring);
        List_Custom.Selected.SubItems.Add(DataM.ADODataSet1.Fields[5].asstring);
        List_Custom.Selected.SubItems.Add(DataM.ADODataSet1.Fields[6].asstring);
        List_Custom.Selected.SubItems.Add(DataM.ADODataSet1.Fields[7].asstring);
       end;
      

  2.   

    跟踪全都没错,可是我把dataset1换成dataset2就好了,因为dataset1别的控件都在用!可是具体什么原因我还不知道!望各位帮助!
      

  3.   

    有可能是AdoDataSet连接的表里面没有数据,估计可能是这个问题,希望能给你点
    提示,祝你好运!