在一个FORM里面加入ADOQuery1  DataSource1 DateTimeRicker1  DBGrid 
ADOQuery1 连接数据库  date.mdb  成功
在DateTimeRicker1的OnChang事件加下下面代码:procedure TEdit_Form.DateTimePicker1Change(Sender: TObject);
var E_day,E_yearmonth:string;
begin
     E_yearmonth:=formatdatetime('yyyy-mm',DateTimePicker1.Date);
     E_day:=formatdatetime('dd',DateTimePicker1.Date);
     readADOQ.Active:=false;
     readADOQ.SQL.Text:='select * from monthread where niany=#'+E_yearmonth+'-01#';
     readADOQ.Open;
     DBGrid1.Columns.Clear;
     DBGrid1.Columns.Add.FieldName:='changm';
     DBGrid1.Columns.Add.FieldName:=E_day;
     DBGrid1.Columns.Items[0].ReadOlny:=false;
     DBGrid1.Columns.Items[1].ReadOlny:=false;
     DBGrid1.Columns.Items[0].Width:=100;
     DBGrid1.Columns.Items[1].Width:=80;
end;想达到当DateTimeRicker1有改动时DBGrid1改变显示不同的记录.并可以修改.
显示效果达到了,可是修改时只有点DateTimeRicker1的下拉菜单选出来的记录才可修改有效,而直接在DateTeimRicker1里改日期显示的记录修改后并没有写入数据库,是不是有什么没有设好?帮帮我.