我在ComboBox控件里输入数据,并把它保存在MS_SQL数据库中,当我再次打算往ComboBox里输入数据时,如果这个数据我已经输过了,就希望出现提示,或者当我焦点转移到下一个框时,就提示或者不能输入什么的。总之,就是希望如果在ComboBox里已经输入过数据并保存到数据库后,就不希望ComboBox里再次输入相同的内容,并能提示给输入者,请教高手,谢谢!
PS:希望告诉我事件在哪里触发,并给出代码,谢谢了!!!
PS:希望告诉我事件在哪里触发,并给出代码,谢谢了!!!
调试欢乐多
begin
with query do
begin
close;
sql.clear;
sql.add(select * from table where field=:p1);
parameters.parameterbyname('p1').value:=combobox1.text;
open;
end;
if query1.recordcount>0 then
begin
Application.messagebox('已经输入过此数据','提示',0+mb_iconquestion) ;
combobox1.setfocus;
combobox1.text:='';
end;
end;
这一次绝对够详细,应该满足你的要求吧,放分吧!
建议在COMBOBOX焦点离开事件写
procedure TForm1.ComboBox1Exit(Sender: TObject);
begin
with query do
begin
close;
sql.clear;
sql.add(select * from table where field=:p1);
parameters.parameterbyname('p1').value:=combobox1.text;
open;
end;
if query1.recordcount>0 then
begin
Application.messagebox('已经输入过此数据','提示',0+mb_iconquestion) ;
combobox1.setfocus;
combobox1.text:='';
end;
end; 引用楼上点代码
[Error] Unit1.pas(35): Undeclared identifier: 'select',不信你试试
begin
with query do
begin
close;
sql.clear;
sql.add(select * from table where field=:p1);
parameters.parameterbyname('p1').value:=combobox1.text;
ShowMessage(SQL.text); //用这句话来看你的SQL写得对不对
open;
end;
if query1.recordcount>0 then
begin
Application.messagebox('已经输入过此数据','提示',0+mb_iconquestion) ;
combobox1.setfocus;
combobox1.text:='';
end;
end;
[Error] Unit1.pas(35): Undeclared identifier: 'select'
能是什么原因呢,我数据库用一个ADOCOnection和ADOquery连的,还有我随便建了个表aa,字段名就命名为name吧,怎么就编译不过去呢,高手帮解答写,谢谢!
[Error] Unit1.pas(35): Undeclared identifier: 'select'
能是什么原因呢,我数据库用一个ADOCOnection和ADOquery连的,还有我随便建了个表aa,字段名就命名为name吧,怎么就编译不过去呢,高手帮解答写,谢谢!
sql.add('select * from table where field=:p1');
sql语句要加单引号的,标识是string类型的。