提示出错信息:project .exe raised exception class Evariant Error with message 'Invalid variant type conversion'.
用的是Access 数据库。

解决方案 »

  1.   

    可能是转换类型时出错,试试强制类型转换
    如:query.fieldbyname('字段名').asstring
      

  2.   

    这是部分代码:
    procedure TForDicomPart.ComboBox6Change(Sender: TObject);
    begin
        with ADOQuery1  do
        begin
            Close;
            SQL.Clear ;
            SQL.Add('select * from Part');
            SQL.Add('where Part2= "'+ComboBox6.Text +'"');
            Open;
            edit8.Text := FieldValues ['ShuLiang'];//到这句出错
            Edit9.Text := FieldValues ['FeiYong'];
    其中ShuLiang,Part2,FeiYong都是文本类型
      

  3.   

    再问一个和这个相关的问题。代码如下:
    procedure TForm1.FormShow(Sender: TObject);
    begin
      with Query1 do
      begin
       close;
       SQL.Clear;
       SQL.Add('select * from dicomreport.db');
       open;
       First;
       ComboBox3.Items.Clear;
       while not Query1.Eof do
       Begin
        ComboBox3.Items.Add (fieldbyname('x线号').AsString);
        next;
       end;  end;
    end;procedure TForm1.ComboBox3Change(Sender: TObject);
    begin
      with query1 do
      begin
       Close;
       SQL.Add('select * from dicomreport.db');
       SQL.Add('where x线号="'+combobox3.text+'"');
       Open;
       Edit5.Text:=Fieldbyname('检查部位').AsString ;
      end;
    end;但是一执行combobox3Change就出错:project .exe raised class EDBEngine Error with message 'invalid use of key word .Token :select.line number:2'.
    这好像和上面的问题一样,应如何解决呢?挺急的,各位帮忙啊。
      

  4.   

    to xzgyb(老达摩) ( ) 
     "是一个双引号,用''试过了还是出错
      

  5.   

    你是不是有ADOTable控件呀!而且Active:=true呀!
      

  6.   

    没有adotable,只有adoquery,adoconnection和query.对数据进行过滤是用where的吧,为什么出错?
      

  7.   

    :project .exe raised class EDBEngine Error with message 'invalid use of key word .Token :select.line number:2'.
    这个问题我有碰到过,在做参数查询的时候会出现,我试了很久后来发现
    和做的数据库表中的字段名字有关
    比如:字段名为User有错,改成U就没错了
    晕~~~~~
    还有参数的左右确保没有空格
      

  8.   

    类型转换错误,看看你的程序吧。如下面的代码就会出这个错:
     inttostr('ab94r4')
      

  9.   

    试一下procedure TForm1.ComboBox3Change(Sender: TObject);
    begin
      with query1 do
      begin
       Close;
       SQL.Add('select * from dicomreport');        //不要.db
       SQL.Add('where x线号="'+combobox3.text+'"');
       Open;
       Edit5.Text:=Fieldbyname('检查部位').AsString ;
      end;
    end;