已建好数据库是Access 的,每个表以人为表名,里面有每个人一年的工作记录,每个人每天行记录。
现ComboBox1是人名,ComboBox2是月分,ComboBox3是每月日期,我应该如何写查询呢,请各位指教了

解决方案 »

  1.   

    不建议你这样做,你可以用一个datetimepicker取代combobox2,combobox3,如果需要这样做,可以用一下字符串拼凑:'select * from youtable where name='+#32+combobox1.tex+#32+' and youdate='+#32+yearof(now)+'-'+combobox2.text+'-'+combobox3.text+#32
      

  2.   

    簡單辦法就是吧日期存為文本格式﹐然后這樣寫sql,比如 一個日期字段為mydateselect * from table1 where mydate = '''+Trim(combobox2.text)+'''其中combobox2為用戶選擇的日期
      

  3.   

    ComboBox2是月分,ComboBox3是每月日期, 这个可以用datatimepicker 来替代。数据库中如果有时间这个记录就可以查,select * from table where time = datatimepicker.data;
      

  4.   

    ComboBox2是月分,ComboBox3是每月日期
    ComboBox2、ComboBox3为什么不合并在一起显示呢?
      

  5.   

    你这个表生成的时候也是类似从ComboBox2是月分,ComboBox3是取到的吗?正如楼上must0001(飞鸟) 所说,不建议你这样写,你应该是建立一个“日期” 字段,用dtpDateTime组件直接写入“yyyy-MM-dd”这种格式,这样以后准备操作都远远比你现在的方便了
      

  6.   

    是我没说清楚,数据库文件名是年份,文件中有以人名为表名的表,每个表里记录着一年每个人的工作量,每天是三行,所以我想用查询时先用ComboBox选择了哪天,再根据月份和天数来查那天具本的工作量,这样的话代码应该如何写呢?如果是用dtpDateTime组件的话又应该如何做?
      

  7.   

    我刚好以前有做过一个,不过我是用edit做的年\月,还能查另一个字段呢
      sqlstr:='select * from 表名 where year(yfkdate)='#39+edit1.text+#39' and month(yfkdate)='#39+edit2.text+#39'';
      sqlstr:=sqlstr+' and rtrim(name)='#39+edit3.text+#39' order by yfkdate';
      adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add(sqlstr);
      adoquery1.Open;
    供参考