我也了个过程:
procedure tckdform.ww1(queryy:tquery;yyform:tform);
var
tss:array[0..1] of string;
begin
tss[1]:='select * from khdwxx where dwh='''+edit2.text+'''';
ww(queryy,tss[1]);
if queryy.IsEmpty then
begin
showmessage('由于这是个新客户,请先填写客户信息!');
yyform.show;
if not yyform.Showing then
ww1(queryy,yyform);
end
else
begin
if queryy.FieldValues['sfxsdw']='否' then
tss[0]:='是';
queryy.Close;
queryy.SQL.Clear;
queryy.sql.add('update khdwxx set sfxsdw='''+tss[0]+'''');
queryy.ExecSQL;
end;
end;然后在调用ww1(query1,khdwxxform);
但是在运行以后khdwxxform是跳出了,但一起出来的还有一个错误:invalid variant type conversion.
这到底错在哪?怎么改?

解决方案 »

  1.   

    我觉得问题应该在这儿if not yyform.Showing then
    ww1(queryy,yyform);改为: if not assigned(yyform) then ww1(queryy,yyform) ;看看可以么 ? 不知道你程序的功能......  
      

  2.   

    我主要是要实现这样,就是因为填出库单的时候发现着是个新的客户,所以要先填写客户单位信息表,所以要判断一下yyform.Showing
      

  3.   

    to wjlsmail(计算机质子) ,还是一样,不行
      

  4.   

    改写一下可以吗 ?
    procedure tckdform.ww1(queryy:tquery);
    var
      tss:array[0..1] of string;
    begin
      tss[1]:='select * from khdwxx where dwh='''+edit2.text+'''';
      ww(queryy,tss[1]);
      if queryy.RecordCount = 0  then
      begin
        showmessage('由于这是个新客户,请先填写客户信息!');
        TheFormForUserIntData.ShowModal; //在这个窗体部分给出写入客户单位信息的代码
      end
      else
        begin
          if queryy.FieldValues['sfxsdw'].AsString='否' then
            tss[0]:='是';
          queryy.Close;
          queryy.SQL.Clear;
          queryy.sql.add('update khdwxx set sfxsdw='''+tss[0]+'''');
          queryy.ExecSQL;
        end;
      end;
    end;
    TheFormForUserIntData : 这个窗体专用来接收用户输入的单位信息并写入库
      

  5.   

    不好意思,问一下TheFormForUserIntData.ShowModal; //在这个窗体部分给出写入客户单位信息的代码是什么意思?
      

  6.   

    TheFormForUserIntData 是自定义的窗体,用来填写客户单位信息代码
    ShowModal是显示方式为模态,Show 为非模态
      

  7.   

    TheFormForUserIntData 是不是要先创建或定义一下,因为这样写进去有错,说TheFormForUserIntData 没有定义。
      

  8.   

    我主要是要实现这样,就是因为填出库单的时候发现这是个新的客户,所以要先填跳出客户单位信息表,然后再SELECT一下看现在有没有这个客户(防止没有填写,所以要判断一下yyform.Showing)如果填写了,就继续,不管用什么方法,只要做到这个就行了,请多帮忙!
      

  9.   

    TheFormForUserIntData 是不是要先创建或定义一下,
    -------------先做这样一个窗体
      

  10.   

    我已经解决了!多谢wjlsmail(计算机质子)