我的程序如下
begin
  ADOQuery1.SQL.Clear;
  ADOQuery1.Close;
  if combobox2.Text:= '资料ID' then
   //begin
  ADOQuery1.sql.Text:='select * from 业务资料库 where '
  +'资料ID'+' = '+''''+'%'+edit1.text+'%'+'''';
   //else
  ADOQuery1.sql.Text:='select * from 业务资料库 where '
  +ComboBox2.text+' like '+''''+'%'+edit1.text+'%'+'''';
  ADOQuery1.Active:=true;
   //end;
    end;
  我用的是adoquery,以下问题能给出例子的最好能给出例子,不胜感激。
问题1、上面的程序有三行屏蔽了,否则不能运行,为什么?
    2、= 和like这两个命令的标准格式到底是啥?使用时要注意啥,我老用不对!
    3、用资料id查询时如果edit1为空,如何让grid显示全部记录?
    4、怎样实现当前是第_条记录,跳转到_条?当我添加一条记录时,怎样让共有_条记录也实时更新?
    5、 panel groupbox等控件如何让其透明,因为我最后放它,却老是覆盖其它控件?
  6、好多控件的autosize怎么用?还有indexname?
  7、怎样让edit中只能输入数字,当输入其它时弹出一提示对话框?
  8、请给出一个提示是否真的退出的例子?
  9、怎样做界面啊?我的界面现在丑的要死!郁闷!!!
  10、如何实现,选中一复选框之后就选中了grid中的一条记录?
注:我是新手,。我会非常感谢您!

解决方案 »

  1.   

    第一:仔细看一下程序 
    if() then 
    begin
    else
    end;
    语法有问题,应该是 
    if () then 
    begin 
    end 
    else 
    begin 
    end;
    第二:
    SQL里面 = 是精确匹配 like 是模糊匹配
      

  2.   

    第三:可以加个判断
    if edit1.text = '' then 
    ADOQuery1.sql.Text:='select * from 业务资料库 
    else
    ADOQuery1.sql.Text:='select * from 业务资料库 where '
      +'资料ID'+' = '+''''+'%'+edit1.text+'%'+'''';第四:用While遍历整个记录集
    第五:Visible属性可以控制是否显示
      

  3.   

    第六:AutoSize是用在界面大小发生变化时,是否自动变化的
    第七:在Edit的OnkeyPress事件中加限制
    第八:用MessageBox
    if MessageBox(0,'你真的要退出吗?','警告',MB_OKCANCEL+MB_ICONWARNING)=IDOK then
         begin
              close;
         end;
    第九:这个没办法
    第十:在复选框的OnClick事件中做处理
      

  4.   

    基础书多看下
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
       if key in['0','1','2','3','4','5','6','7','8','9'] then
         Edit1.Text:=Edit1.Text+key
       else
       exit;
    end;
      

  5.   

    procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
    begin
    if (not (Key in ['0'..'9'])) and (not(key in['.']))and (key<>#8)  then
         Key :=#0;
    end;这样比较好.
      

  6.   

    问题一: 因为你的if 条件 then 后面的语句
      ADOQuery1.sql.Text:='select * from 业务资料库 where '
      +'资料ID'+' = '+''''+'%'+edit1.text+'%'+'''';  
      最后这个分号要去掉.  if 条件1 then
        执行的程序段,如果只是一句,则后面不加要分号,否则用begin 程序段 end (也没有分号)
      else  begin //此处同理
      end;
    问题二: = 是精确查询  like是模糊查询  like '%查询条件%'  可以加前后%,查一下数据库的资料
    问题三:在查询时,需要拼SQL语句,如果 trim(edit1.text)<>'' 时,你把id的查询条件加上,否则不加
    问题四:这个没太清楚你的问题
    问题五:可以将其点右键, control->send to back就在最后了
    问题六:autosize是自动调节控件大小,indexname具体没注意过
    问题七:  
    在 onkeypress事件中加入如下代码(可以自己确定想让它能输入什么):
    if not(Key in ['0'..'9',#8,'-']) then Key := #0;
    问题八:application.Terminate 而且没明白你指的真正退出是什么 ,一般只要主窗体close了,整个进程就关了,相当于程序退出了
    问题九:界面自己多看看相关的程序
    问题十:这个看我用什么控件