在一个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里改日期显示的记录修改后并没有写入数据库,是不是有什么没有设好?帮帮我.
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里改日期显示的记录修改后并没有写入数据库,是不是有什么没有设好?帮帮我.
我发现只要改完记录后只要把光标移开点别一条记录数据就能写入,如要改守不移开就写不进这是怎么回事?