我有以下ms access 2003表:
Invoice_Master
(
Invoice_Id Autonumber,
Customer_Id integer,
Invoice_Date Date/Time not null,
.
.
.
);和以下代码(Delphi 7)
procedure TfmInvoiceMaster.adoMasterEditNewRecord(DataSet: TDataSet);
begin
inherited;
adoMasterEditInvoice_Date.AsDateTime := Date;
end;当我试图添加一个新记录时,我以异常错误sys结尾:
字段“Invoice_Date”无法修改。
请问出什么事了?
发布于 2012-04-03 20:38:54
你做错了。:)
您应该使用AfterEdit事件。来自TDataSet.AfterEdit上的帮助文件
编写一个AfterEdit事件处理程序,以便在dataset进入编辑模式后立即采取特定的操作。编辑在允许编辑记录、重新计算计算字段并调用数据事件处理程序处理记录更改后调用AfterEdit。
像这样使用它:
procedure TfmInvoiceMaster.adoMasterAfterEdit(DataSet: TDataSet);
begin
// No inherited call! This is an event handler, not an overridden method
adoMasterEditInvoice_Date.AsDateTime := Date;
end;但是,从您的文本中,您似乎希望在插入记录时执行此操作,而不是对其进行编辑(“当我试图添加新记录时,以异常错误sys结束)。”如果是这样的话,使用AfterInsert的方式也是一样的:
procedure TfmInvoiceMaster.adoMasterAfterInsert(DataSet: TDataSet);
begin
// No inherited call! This is an event handler, not an overridden method
adoMasterEditInvoice_Date.AsDateTime := Date;
end;https://stackoverflow.com/questions/10000515
复制相似问题