我在Uses 中加了db, 但
With datat.Table4 do
if not active then open;
namea:=fieldbyname('name').asstring;
begin
...
然后就报错:Undelclared identifier:'fiedlbyname'?
如果用namea:=datat.table4.fieldbyname('name').asstring;就好了,
是with语句有问题吗?
在线等待!!!
谢谢!!!程序如下:
uses ... db,...Dialogs,
Buttons, ExtCtrls, StdCtrls, ComCtrls, Mask, DBCtrls,db, Grids, DBGrids,
RXDBCtrl, GDBGrid, Animate, GIFCtrl, DBTables, DBGridEh;procedure TRecForm.SpeedButton1Click(Sender: TObject);
var i:integer;
noo:string;
boo:Tbook;
begin
if not DataT.Table4.Active then
DataT.Table4.Open;
if DataT.Table4.RecordCount = 0 then noo:='0';
if DataT.Table4.RecordCount > 0 then
Begin
boo:= DataT.Table4.GetBook;
DataT.Table4.Close;
DataT.Table4.Open;
DataT.Table4.Last;
noo:=DataT.Table4.fieldbyname('EmpId').AsString;
DataT.Table4.GotoBook(boo);
DataT.Table4.FreeBook(boo);
End;
noo:=FloatToStr(StrToInt(noo)+1);
For i:=1 to 5-Length(noo) do
begin
noo:='0'+noo;
end;
application.CreateForm(Taddform,addform);
if AddForm.ShowModal=mrOk then
begin
if not DataT.Table4.Active then
DataT.Table4.Open;
case AddForm.RadioGroup1.ItemIndex of
0: begin
DataT.Table4.Edit;
DataT.Table4.insert;
end;
1: begin
DataT.Table4.Next;
DataT.Table4.Edit;
DataT.Table4.Insert;
end;
2: begin
DataT.Table4.Last;
DataT.Table4.Edit;
DataT.Table4.Append;
end;
end;
end;
Dbedit1.SetFocus;
Dbedit1.Text:=noo;
RecForm.Caption:='记录管理 记录数为:'+IntToStr(DataT.Table4.RecordCount)+'人';
AddForm.Release;
end;procedure TRecForm.SpeedButton3Click(Sender: TObject);
begin
try
try
with DataT.Table4 do
begin
if not active then open;
edit;
Post;
end;
except
Application.MessageBox('数据发生错误!!!请运行<维护>---><数据清理>菜单项!!!','提示框',mb_ok+mb_iconstop);
abort;
end;
Finally
Application.MessageBox('数据成功保存!!!','提示框',mb_ok+mb_iconinformation);
End;
end;procedure TRecForm.SpeedButton2Click(Sender: TObject);
Var
namea:String;
noo:string;
begin
application.CreateForm(TDelRecForm,DelRecForm);
If DelRecForm.ShowModal=MrOk then
begin With datat.Table4 do
if not active then open;
noo:=DataT.Table4.fieldbyname('EmpId').AsString;
namea:=datat.Table4.fieldbyname('name').asstring;
begin
Case DelRecForm.RadioGroup1.ItemIndex of
0:
begin
datat.Table4.Edit;
if messagedlg('你确定这条纪录-->'+#13+#10+'姓名: '+namea+#13+#10+'退休吗?定以为退休后此人不再参与每月数据计算',mtconfirmation,
[mbyes,mbno],0)=mryes then FieldByName('ManFlag').AsString:='退休';
post;
end;
1:
begin
edit;
if messagedlg('你确定这条纪录-->'+#13+#10+'姓名: '+namea+#13+#10+'定以为停薪吗?定义为停薪后此人各项数据清零',mtconfirmation,
[mbyes,mbno],0)=mryes then FieldByName('ManFlag').AsString:='停薪';
post;
end;
2:
begin
edit;
if messagedlg('你确定这条纪录-->'+#13+#10+'姓名: '+namea+#13+#10+'定义为调出吗?,定以为调出后此人各项数仍存在,为以后计算台帐做基数.',mtconfirmation,
[mbyes,mbno],0)=mryes then FieldByName('ManFlag').AsString:='调出';
post;
end;
3:
begin
edit;
if messagedlg('你确定这条纪录-->'+#13+#10+'姓名: '+namea+#13+#10+'定以为其他吗?',mtconfirmation,
[mbyes,mbno],0)=mryes then FieldByName('ManFlag').AsString:='其他';
post;
end;
4:
begin
if messagedlg('你确定这条纪录-->'+#13+#10+'姓名: '+namea+#13+#10+'彻底删除吗?,删除后此记录将不可能恢复,台帐数也没有.',mtconfirmation,
[mbyes,mbno],0)=mryes then
begin
delete;
datat.Table4.Close;
datat.table4.Open;
//packtable(datat.table4);
datat.Table4.Close;
datat.table4.Open;
end;
end;
end;
end;
end;
end;
end.
With datat.Table4 do
if not active then open;
namea:=fieldbyname('name').asstring;
begin
...
然后就报错:Undelclared identifier:'fiedlbyname'?
如果用namea:=datat.table4.fieldbyname('name').asstring;就好了,
是with语句有问题吗?
在线等待!!!
谢谢!!!程序如下:
uses ... db,...Dialogs,
Buttons, ExtCtrls, StdCtrls, ComCtrls, Mask, DBCtrls,db, Grids, DBGrids,
RXDBCtrl, GDBGrid, Animate, GIFCtrl, DBTables, DBGridEh;procedure TRecForm.SpeedButton1Click(Sender: TObject);
var i:integer;
noo:string;
boo:Tbook;
begin
if not DataT.Table4.Active then
DataT.Table4.Open;
if DataT.Table4.RecordCount = 0 then noo:='0';
if DataT.Table4.RecordCount > 0 then
Begin
boo:= DataT.Table4.GetBook;
DataT.Table4.Close;
DataT.Table4.Open;
DataT.Table4.Last;
noo:=DataT.Table4.fieldbyname('EmpId').AsString;
DataT.Table4.GotoBook(boo);
DataT.Table4.FreeBook(boo);
End;
noo:=FloatToStr(StrToInt(noo)+1);
For i:=1 to 5-Length(noo) do
begin
noo:='0'+noo;
end;
application.CreateForm(Taddform,addform);
if AddForm.ShowModal=mrOk then
begin
if not DataT.Table4.Active then
DataT.Table4.Open;
case AddForm.RadioGroup1.ItemIndex of
0: begin
DataT.Table4.Edit;
DataT.Table4.insert;
end;
1: begin
DataT.Table4.Next;
DataT.Table4.Edit;
DataT.Table4.Insert;
end;
2: begin
DataT.Table4.Last;
DataT.Table4.Edit;
DataT.Table4.Append;
end;
end;
end;
Dbedit1.SetFocus;
Dbedit1.Text:=noo;
RecForm.Caption:='记录管理 记录数为:'+IntToStr(DataT.Table4.RecordCount)+'人';
AddForm.Release;
end;procedure TRecForm.SpeedButton3Click(Sender: TObject);
begin
try
try
with DataT.Table4 do
begin
if not active then open;
edit;
Post;
end;
except
Application.MessageBox('数据发生错误!!!请运行<维护>---><数据清理>菜单项!!!','提示框',mb_ok+mb_iconstop);
abort;
end;
Finally
Application.MessageBox('数据成功保存!!!','提示框',mb_ok+mb_iconinformation);
End;
end;procedure TRecForm.SpeedButton2Click(Sender: TObject);
Var
namea:String;
noo:string;
begin
application.CreateForm(TDelRecForm,DelRecForm);
If DelRecForm.ShowModal=MrOk then
begin With datat.Table4 do
if not active then open;
noo:=DataT.Table4.fieldbyname('EmpId').AsString;
namea:=datat.Table4.fieldbyname('name').asstring;
begin
Case DelRecForm.RadioGroup1.ItemIndex of
0:
begin
datat.Table4.Edit;
if messagedlg('你确定这条纪录-->'+#13+#10+'姓名: '+namea+#13+#10+'退休吗?定以为退休后此人不再参与每月数据计算',mtconfirmation,
[mbyes,mbno],0)=mryes then FieldByName('ManFlag').AsString:='退休';
post;
end;
1:
begin
edit;
if messagedlg('你确定这条纪录-->'+#13+#10+'姓名: '+namea+#13+#10+'定以为停薪吗?定义为停薪后此人各项数据清零',mtconfirmation,
[mbyes,mbno],0)=mryes then FieldByName('ManFlag').AsString:='停薪';
post;
end;
2:
begin
edit;
if messagedlg('你确定这条纪录-->'+#13+#10+'姓名: '+namea+#13+#10+'定义为调出吗?,定以为调出后此人各项数仍存在,为以后计算台帐做基数.',mtconfirmation,
[mbyes,mbno],0)=mryes then FieldByName('ManFlag').AsString:='调出';
post;
end;
3:
begin
edit;
if messagedlg('你确定这条纪录-->'+#13+#10+'姓名: '+namea+#13+#10+'定以为其他吗?',mtconfirmation,
[mbyes,mbno],0)=mryes then FieldByName('ManFlag').AsString:='其他';
post;
end;
4:
begin
if messagedlg('你确定这条纪录-->'+#13+#10+'姓名: '+namea+#13+#10+'彻底删除吗?,删除后此记录将不可能恢复,台帐数也没有.',mtconfirmation,
[mbyes,mbno],0)=mryes then
begin
delete;
datat.Table4.Close;
datat.table4.Open;
//packtable(datat.table4);
datat.Table4.Close;
datat.table4.Open;
end;
end;
end;
end;
end;
end;
end.
解决方案 »
- 请教关于DELPHI调用VC++编写的COM组件的问题.急
- 求救!!!如何生成字段名称、字段类型、字段长度动态变化的临时表???????????
- delphi里,添加已有工程的问题!
- 辞职,自己酿造的后果自己负责!
- listview中排序与ONDATE有无冲突,如何解决
- 一个ole保存的问题,希望你的到来
- dbchart能不能设定条件?
- 这个sql如何改写??
- 根据一些参数绘一张图,图特别简单,几条平行的横线和斜线组成,但点击某条线可以得到一些信息。
- 请问众位高手,窗体最小化要触发什么事件,或是要捕捉什么消息?谢谢
- 高分请教高手:DBGRIDEH打印预览后如何输出到Excel文件。
- 关于Delphi程序员前途的问题
if not active then open;
namea:=fieldbyname('name').asstring;
.....
end;//需要加
没有问题啊
是不是你把fieldbyname写错了(Undelclared identifier:'fiedlbyname');
fiedlbyname --》fieldbyname
With datat.Table4 do
if not active then open;
namea:=fieldbyname('name').asstring;with table4..
这句只对下面第一句有效,即 if not active then open;
对以后的语句就在这个WITH块范围之外了
应该用BEGIN。。END包括起来