做了个简单的人事表,通过窗体查询,查询内容是通过填写几个edit的内容查询,查询的内容有姓名,性别,部门,学历,职称,职务,年龄(多少岁之多少岁,通过俩个edit添写),然后通过一个查询按钮在gbgrid1中显示查询的内容。有时只查姓名,或有时查部门和学历,有是全部查,查完时用一个label显示查到记录的个数,代码什么写呀。要是我给的分不够,我再加。

解决方案 »

  1.   

    如果这个Edit不为空就在Where 后面加 AND EXISTS(SELECT 1 FROM yourtable WHERE ...), 依次类推
      

  2.   

    edit为空是就说明是不查这个属性吗,比如label1显示姓名,它后名的edit为空时,就说明不查询姓名。。大哥们代码写的详细点行吗,我是菜鸟
      

  3.   

    比方说你一个表Employee,  有一个字为EmployeeName;你要查SELECT * FROM Employee 
    那就用简单一点吧
    var
      SQL: string;
    begin
      SQL := 'SELECT * FROM Employee WHERE 1 = 1';
      if Trim(edtEmployeeName.Text) <> '' then
        SQL := SQL = ' AND EmpoyeeName = ' + QuotedStr(Edit1.Text);
      if ............