各位老师delphi 编译没有错,但运行出错 
 运行时,先出现一个出错提示  " could convert variant of type (Null)  into type (string)"  做的是数据库记录的查询

解决方案 »

  1.   

      老师,加了这些代码运行就出错了.不知错在那里,烦您 帮助了.
    implementation{$R *.dfm}procedure TForm6.Button1Click(Sender: TObject);
    begin
        close;
    end;procedure TForm6.FormCreate(Sender: TObject);
       var province,area:string[10];
          thisnode:TTreeNode;begin     Adoquery2.SQL.Clear;
         Adoquery2.SQL.Add('select DISTINCT  Ê¡·Ý from stuinfo');
         Adoquery2.Open;
         thisnode:=TreeView1.Items.GetFirstNode;
         while  not Adoquery2.Eof do
             begin
                province:=Adoquery2.Fields[0].AsString; //ÔÚADOquery2ÐòºÅΪ0
                thisnode:=TreeView1.Items.Add(thisnode,province);
                Adoquery3.SQL.Clear;
                ADoquery3.SQL.Add('select DISTINCT µØÇø from stuinfo WHERE Ê¡·Ý=:a');
                ADOquery3.Parameters.ParamByName('a').Value:=province;
                ADOquery3.Open;
                while not ADOquery3.Eof do
                    begin
                        area:=ADOquery3.Fields[0].Value;
                        Treeview1.Items.AddChildFirst(thisnode,area);
                        Adoquery3.Next;
                    end;
                    ADoQuery2.Next;
              end;end;procedure TForm6.TreeView1Click(Sender: TObject);
         var province,area:string[10];begin
         if Treeview1.Selected.Level=0 then   //µ¥»÷µÄÊǵÚÒ»²ã½áµã£¬±íʾʡ·Ý
            begin                  //½«TreeView1Ñ¡ÖнáµãÖµ×÷ΪADOquery1µÄ²Î¿¼Öµ
                province:=Treeview1.Selected.Text;
                ADOquery1.SQL.Clear;
                if Province='È«²¿' then
                    ADOquery1.SQL.Add('select  * from stuinfo')
                        else  begin
                            ADOquery1.SQL.Add('select * from stuinfo WHERE Ê¡·Ý=:a');
                            ADOquery1.Parameters.ParamByName('a').Value:=province;
                        end;
                    ADoquery1.Open;
                    end
                    else  begin
                        province:=Treeview1.Selected.Parent.Text;
                        area:=Treeview1.Selected.Text;
                        Adoquery1.SQL.Clear;
                        ADOquery1.SQL.Add('select * from stuinfo Where (Ê¡·Ý=:a)and (µØÇø=:b)');
                        ADOquery1.Parameters.ParamByName('a').Value:=province;
                        ADoquery1.Parameters.ParamByName('b').Value:=area;
                        ADOquery1.Open;
                    end;
    end;end.
      

  2.   

    这是通过word 可以显示中文
    procedure TForm6.FormCreate(Sender: TObject);
      var province,area:string[10];
          thisnode:TTreeNode;
    begin
        Adoquery2.SQL.Clear;
         Adoquery2.SQL.Add('select DISTINCT  省份 from stuinfo');
         Adoquery2.Open;
         thisnode:=TreeView1.Items.GetFirstNode;
         while  not Adoquery2.Eof do
             begin
                province:=Adoquery2.Fields[0].AsString; //在ADOquery2序号为0
                thisnode:=TreeView1.Items.Add(thisnode,province);
                Adoquery3.SQL.Clear;
                ADoquery3.SQL.Add('select DISTINCT 地区 from stuinfo WHERE 省份=:a');
                ADOquery3.Parameters.ParamByName('a').Value:=province;
                ADOquery3.Open;
                while not ADOquery3.Eof do
                    begin
                        area:=ADOquery3.Fields[0].Value;
                        Treeview1.Items.AddChildFirst(thisnode,area);
                        Adoquery3.Next;
                    end;
       ADoQuery2.Next;
              end;
    end;procedure TForm6.TreeView1Click(Sender: TObject);
        var province,area:string[10];
    begin
        if Treeview1.Selected.Level=0 then   //单击的是第一层结点,表示省份
            begin                  //将TreeView1选中结点值作为ADOquery1的参考值
                province:=Treeview1.Selected.Text;
                ADOquery1.SQL.Clear;
                if Province='全部' then
                    ADOquery1.SQL.Add('select  * from stuinfo')
                        else  begin
                            ADOquery1.SQL.Add('select * from stuinfo WHERE 省份=:a');
                            ADOquery1.Parameters.ParamByName('a').Value:=province;
                        end;
                    ADoquery1.Open;
                    end
                    else  begin
                        province:=Treeview1.Selected.Parent.Text;
                        area:=Treeview1.Selected.Text;
                        Adoquery1.SQL.Clear;
                        ADOquery1.SQL.Add('select * from stuinfo Where (省份=:a)and (地区=:b)');
                        ADOquery1.Parameters.ParamByName('a').Value:=province;
                        ADoquery1.Parameters.ParamByName('b').Value:=area;
                        ADOquery1.Open;
                    end;
            end;
      

  3.   

    设置断点了么?
    area:=ADOquery3.Fields[0].Value;
    这一句改成
    area:=ADOquery3.Fields[0].AsString试试;