procedure Txshmlrform.DBGrid1KeyPress(Sender: TObject; var Key: Char);
var
id:string;
begin
if Key = #13 then
begin
with dbgrid1 do
begin
if datamodule1.hmxsbQuery.State = dsEdit then datamodule1.hmxsbQuery.Post ;
if SelectedIndex < FieldCount -1 then
SelectedIndex := SelectedIndex + 1
else
begin
with datamodule1.hmxsbQuery do
begin
if (datamodule1.hmxsbQuery.State = dsEdit) or (datamodule1.hmxsbQuery.State = dsInsert) then datamodule1.hmxsbQuery.Post ;
Close ;
Open ;
Append ;
end ;
SelectedIndex := 0 ;
end ;
end ;
id:=datamodule1.hmxsbQuery.fields[0].value;
datamodule1.hmjbbquery.Close;
datamodule1.hmjbbquery.sQL.Clear;
datamodule1.hmjbbquery.sQL.Add('select * from hmjbb where sjhm='''+id+'''');
datamodule1.hmjbbquery.open;
if datamodule1.hmjbbQuery.recordcount<>0 then
begin
datamodule1.hmxsbquery.Fields[1].value:=datamodule1.hmjbbquery.Fields[1].value;
datamodule1.hmxsbquery.Fields[4].value:=datamodule1.hmjbbquery.Fields[4].value;
datamodule1.hmxsbquery.Fields[5].value:=datamodule1.hmjbbquery.Fields[3].value;
end
else begin
showmessage('该纪录不存在存在');
dbgrid1.SelectedIndex:=0;
end;
end;
end;该段代码实现的是在DBGRID中输入一个数后向数据库中查找,找到则让当前焦点跳到下一列,一直到最后列敲回车就再插入一条记录,但是我运行时到最后一列敲回车时老是提示:could not convert variant of type into type(string),但是能继续插入。
这段程序我用QUERY+PARADOX DB运行时挺好,一换成ADO的就不行了
var
id:string;
begin
if Key = #13 then
begin
with dbgrid1 do
begin
if datamodule1.hmxsbQuery.State = dsEdit then datamodule1.hmxsbQuery.Post ;
if SelectedIndex < FieldCount -1 then
SelectedIndex := SelectedIndex + 1
else
begin
with datamodule1.hmxsbQuery do
begin
if (datamodule1.hmxsbQuery.State = dsEdit) or (datamodule1.hmxsbQuery.State = dsInsert) then datamodule1.hmxsbQuery.Post ;
Close ;
Open ;
Append ;
end ;
SelectedIndex := 0 ;
end ;
end ;
id:=datamodule1.hmxsbQuery.fields[0].value;
datamodule1.hmjbbquery.Close;
datamodule1.hmjbbquery.sQL.Clear;
datamodule1.hmjbbquery.sQL.Add('select * from hmjbb where sjhm='''+id+'''');
datamodule1.hmjbbquery.open;
if datamodule1.hmjbbQuery.recordcount<>0 then
begin
datamodule1.hmxsbquery.Fields[1].value:=datamodule1.hmjbbquery.Fields[1].value;
datamodule1.hmxsbquery.Fields[4].value:=datamodule1.hmjbbquery.Fields[4].value;
datamodule1.hmxsbquery.Fields[5].value:=datamodule1.hmjbbquery.Fields[3].value;
end
else begin
showmessage('该纪录不存在存在');
dbgrid1.SelectedIndex:=0;
end;
end;
end;该段代码实现的是在DBGRID中输入一个数后向数据库中查找,找到则让当前焦点跳到下一列,一直到最后列敲回车就再插入一条记录,但是我运行时到最后一列敲回车时老是提示:could not convert variant of type into type(string),但是能继续插入。
这段程序我用QUERY+PARADOX DB运行时挺好,一换成ADO的就不行了
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货