procedure TfrmProSelect.CheckBoxTypeClick(Sender: TObject);
begin
if CheckBoxType.Checked then
begin
   DBLookupComboBox1.Enabled:=false;
   datamodule2.Q_Product2.Close;
   datamodule2.Q_Product2.Parameters[0].Value:=DBCBoxProType.Text;
   datamodule2.Q_Product2.Open;
   dbgrid1.DataSource:=datamodule2.DS_Product2;
   dbgrid1.Columns[0].FieldName:=datamodule2.Q_Product2.DataSource.DataSet.FieldValues['品名'];
   dbgrid1.Columns[1].FieldName:=datamodule2.Q_Product2.DataSource.DataSet.FieldValues['生产厂家'];
   dbgrid1.Columns[2].FieldName:=datamodule2.Q_Product2.DataSource.DataSet.FieldValues['所属类别'];
   dbgrid1.Columns[3].FieldName:=datamodule2.Q_Product2.DataSource.DataSet.FieldValues['库存量'];
   dbgrid1.Refresh;
end
else
begin
   DBLookupComboBox1.Enabled:=true;
   datamodule2.Q_Product1.Close;
   datamodule2.Q_Product1.Parameters[0].Value:=DBLookupComboBox1.Text;
   datamodule2.Q_Product1.Open;
   dbgrid1.DataSource:=datamodule2.DS_Product1;
   dbgrid1.DataSource:=datamodule2.DS_Product2;
   dbgrid1.Columns[0].FieldName:=datamodule2.Q_Product1.DataSource.DataSet.FieldValues['品名'];
   dbgrid1.Columns[1].FieldName:=datamodule2.Q_Product1.DataSource.DataSet.FieldValues['生产厂家'];
   dbgrid1.Columns[2].FieldName:=datamodule2.Q_Product1.DataSource.DataSet.FieldValues['所属类别'];
   dbgrid1.Columns[3].FieldName:=datamodule2.Q_Product1.DataSource.DataSet.FieldValues['库存量'];
   dbgrid1.Refresh;
end;
end;

解决方案 »

  1.   

    只要我点击了checkbox,就弹出错误“应用程序的当前操作使用了错误类型的值”
      

  2.   

    dbgrid1.Columns[3].FieldName:=datamodule2.Q_Product2.DataSource.DataSet.FieldValues['库存量'];看看这句,类型匹配吗?
      

  3.   

    建议你用个转换吧,AsXXX的。好一些
      

  4.   

    能这样赋值吗,
    .FieldName:=.FieldValues['品名'];
    dbgrid1.Columns[0].FieldName:='品名';试试。
      

  5.   

    to scsun:这样改了还是不对。
    如果要改,该怎么改呢?我还试过].FieldName:=datamodule2.Q_Product1.FieldValues['品名'].asstirng;的形式,但还是这个毛病
      

  6.   

    打错了,FieldValues['品名']后面没有.asstring
      

  7.   

    to Nizvoo:能写得明白些吗,小弟没看明白。
      

  8.   

    Fields[0].AsXXXX
    Feilds[1].AsXXXX看看这样用数字行不行,我估计是数据有问题,你先尝试一下