procedure TForm4.i_idChange(Sender: TObject); begin with DM3 do begin AT_user_2.Filter:='ID='''+i_id.text+''''; AT_user_2.Filtered:=true; AT_user_2.open; //在这里出现了错误! AT_change_list.filter:='员工号='''+i_id.text+''''; AT_change_list.filtered:=true; AT_change_list.open; end; end;好多地方都有同样的错误。
是不是把字段直接加入fieldlist里面了 这之间你又修改了数据库
procedure TForm4.i_idChange(Sender: TObject); begin with DM3 do begin AT_user_2.open; //在这里出现了错误! AT_user_2.Filter:='ID='''+i_id.text+''''; AT_user_2.Filtered:=true; AT_change_list.open; AT_change_list.filter:='员工号='''+i_id.text+''''; AT_change_list.filtered:=true; end; end;
procedure TForm4.i_idChange(Sender: TObject); begin with DM3 do begin AT_user_2.open; //在这里出现了错误! AT_user_2.Filter:='ID='''+ReplaceStr(i_id.text, '''', '''''')+''''; AT_user_2.Filtered:=true; AT_change_list.open; AT_change_list.filter:='员工号='''+ReplaceStr(i_id.text, '''', '''''')+''''; AT_change_list.filtered:=true; end; end;
procedure TForm4.i_idChange(Sender: TObject); begin with DM3 do begin AT_user_2.Filter:='ID='''+ReplaceStr(i_id.text, '''', '''''')+''''; AT_user_2.Filtered:=true; AT_change_list.open; AT_change_list.filter:='员工号='''+ReplaceStr(i_id.text, '''', '''''')+''''; AT_change_list.filtered:=true; end; end;再试试看
改了很久还是不对估计是数据库连接方面出了问题,哪位高手有空加我QQ69914261,我把源程序给你帮我看看。上面的问题莫名其妙的没了,有一断总是有问题。我贴出来: unit Unit5;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DBCtrls, ExtCtrls, Mask;type Tform5 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; i_passwd: TEdit; i_user: TDBEdit; i_name: TDBEdit; i_bitthday: TDBEdit; i_sex: TDBRadioGroup; i_specialty: TDBEdit; i_address: TDBEdit; i_tel: TDBEdit; i_email: TDBEdit; i_re: TDBMemo; i_department: TDBLookupComboBox; i_job: TDBLookupComboBox; i_edu_level: TDBLookupComboBox; Button1: TButton; Button3: TButton; procedure AddInit; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var form5: Tform5;implementationuses Unit1, Unit2, Unit3, Unit4;{$R *.dfm}procedure Tform5.AddInit; var counter:integer; id:string; begin with DM3 do begin AT_counter.Filter:='ID=''P'''; AT_counter.Filtered:=true; AT_counter.Open; counter:=AT_counter['计数值']; AT_counter.Close; id:='00000'+IntToStr(counter); id:='P'+Copy(id,length(id)-4,5); AT_add_user.Open; //出问题的地方 AT_add_user.Append; AT_add_user['ID']:=id; AT_add_user['性别']:='男'; AT_add_user['当前状态']:='T'; i_user:=id; i_passwd.Text:=id; end; end;procedure Tform5.Button1Click(Sender: TObject); var passwd:String; counter:Integer; begin if length(i_name.Text)>0 then passwd:=i_passwd.text; with DM3 do begin AT_counter.Filter:='ID=''P'''; AT_counter.Filtered:=true; AT_counter.Open; AT_counter.Edit; AT_counter['计数值']:=AT_counter['计数值']+1; AT_counter.Post; AT_counter.Close; AT_add_user.Edit; AT_add_user['密码']:=passwd; AT_add_user.Post; AT_counter.Filter:='ID=''C'''; AT_counter.Filtered:=true; AT_counter.Open; counter:=AT_counter['计数值']; inc(counter); AT_counter.Edit; AT_counter['计数值']:=counter; AT_counter.Post; AT_counter.Close; AT_change.Open; AT_change.Append; AT_change['ID']:=counter; AT_change['员工号']:=i_user.Text; AT_change['变更代码']:='2'; AT_change['变更时间']:=Now; AT_change['详细记录']:='加入公司'; AT_change.Post; AT_change.Close; end; AddInit; end;procedure Tform5.FormCreate(Sender: TObject); begin with DM3 do begin if not AT_department.Active then AT_department.Open; if not AT_job.Active then AT_job.Open; if not AT_edu_level.Active then AT_edu_level.Open; end; AddInit; end;procedure Tform5.Button3Click(Sender: TObject); begin form5.Close; form2.Show; end;end.
看看
begin
with DM3 do
begin
AT_user_2.Filter:='ID='''+i_id.text+'''';
AT_user_2.Filtered:=true;
AT_user_2.open; //在这里出现了错误!
AT_change_list.filter:='员工号='''+i_id.text+'''';
AT_change_list.filtered:=true;
AT_change_list.open;
end;
end;好多地方都有同样的错误。
这之间你又修改了数据库
begin
with DM3 do
begin
AT_user_2.open; //在这里出现了错误!
AT_user_2.Filter:='ID='''+i_id.text+'''';
AT_user_2.Filtered:=true;
AT_change_list.open;
AT_change_list.filter:='员工号='''+i_id.text+'''';
AT_change_list.filtered:=true;
end;
end;
begin
with DM3 do
begin
AT_user_2.open; //在这里出现了错误!
AT_user_2.Filter:='ID='''+ReplaceStr(i_id.text, '''', '''''')+'''';
AT_user_2.Filtered:=true;
AT_change_list.open;
AT_change_list.filter:='员工号='''+ReplaceStr(i_id.text, '''', '''''')+'''';
AT_change_list.filtered:=true;
end;
end;
begin
with DM3 do
begin
AT_user_2.Filter:='ID='''+ReplaceStr(i_id.text, '''', '''''')+'''';
AT_user_2.Filtered:=true;
AT_change_list.open;
AT_change_list.filter:='员工号='''+ReplaceStr(i_id.text, '''', '''''')+'''';
AT_change_list.filtered:=true;
end;
end;再试试看
unit Unit5;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, ExtCtrls, Mask;type
Tform5 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
i_passwd: TEdit;
i_user: TDBEdit;
i_name: TDBEdit;
i_bitthday: TDBEdit;
i_sex: TDBRadioGroup;
i_specialty: TDBEdit;
i_address: TDBEdit;
i_tel: TDBEdit;
i_email: TDBEdit;
i_re: TDBMemo;
i_department: TDBLookupComboBox;
i_job: TDBLookupComboBox;
i_edu_level: TDBLookupComboBox;
Button1: TButton;
Button3: TButton;
procedure AddInit;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject); private
{ Private declarations }
public
{ Public declarations }
end;var
form5: Tform5;implementationuses Unit1, Unit2, Unit3, Unit4;{$R *.dfm}procedure Tform5.AddInit;
var
counter:integer;
id:string;
begin
with DM3 do
begin
AT_counter.Filter:='ID=''P''';
AT_counter.Filtered:=true;
AT_counter.Open;
counter:=AT_counter['计数值'];
AT_counter.Close;
id:='00000'+IntToStr(counter);
id:='P'+Copy(id,length(id)-4,5);
AT_add_user.Open; //出问题的地方
AT_add_user.Append;
AT_add_user['ID']:=id;
AT_add_user['性别']:='男';
AT_add_user['当前状态']:='T';
i_user:=id; i_passwd.Text:=id;
end;
end;procedure Tform5.Button1Click(Sender: TObject);
var
passwd:String;
counter:Integer;
begin
if length(i_name.Text)>0 then
passwd:=i_passwd.text;
with DM3 do
begin
AT_counter.Filter:='ID=''P''';
AT_counter.Filtered:=true;
AT_counter.Open;
AT_counter.Edit;
AT_counter['计数值']:=AT_counter['计数值']+1;
AT_counter.Post;
AT_counter.Close;
AT_add_user.Edit;
AT_add_user['密码']:=passwd;
AT_add_user.Post;
AT_counter.Filter:='ID=''C''';
AT_counter.Filtered:=true;
AT_counter.Open;
counter:=AT_counter['计数值'];
inc(counter);
AT_counter.Edit;
AT_counter['计数值']:=counter;
AT_counter.Post;
AT_counter.Close;
AT_change.Open;
AT_change.Append;
AT_change['ID']:=counter;
AT_change['员工号']:=i_user.Text;
AT_change['变更代码']:='2';
AT_change['变更时间']:=Now;
AT_change['详细记录']:='加入公司';
AT_change.Post;
AT_change.Close;
end;
AddInit;
end;procedure Tform5.FormCreate(Sender: TObject);
begin
with DM3 do
begin
if not AT_department.Active then AT_department.Open;
if not AT_job.Active then AT_job.Open;
if not AT_edu_level.Active then AT_edu_level.Open;
end;
AddInit;
end;procedure Tform5.Button3Click(Sender: TObject);
begin
form5.Close;
form2.Show;
end;end.
1、重写出错的ADOTABLE或QUERY组件。
2、有时候加入空格也可以处理,这是为什么我也不理解。
3、找到里面相同的代码替换后在改写。
希望对大家有点帮助!