我也了个过程:
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.
这到底错在哪?怎么改?
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.
这到底错在哪?怎么改?
ww1(queryy,yyform);改为: if not assigned(yyform) then ww1(queryy,yyform) ;看看可以么 ? 不知道你程序的功能......
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 : 这个窗体专用来接收用户输入的单位信息并写入库
ShowModal是显示方式为模态,Show 为非模态
-------------先做这样一个窗体