📄 unit6.pas
字号:
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, Grids, DBGrids,DB,ADODB;
type
TForm6 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
Panel4: TPanel;
Label1: TLabel;
bj: TComboBox;
Label2: TLabel;
xq: TComboBox;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
DataSource1: TDataSource;
DataSource2: TDataSource;
ADOQuery3: TADOQuery;
GroupBox1: TGroupBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
GroupBox2: TGroupBox;
xh: TLabeledEdit;
xm: TLabeledEdit;
km: TComboBox;
Label3: TLabel;
cj: TLabeledEdit;
BitBtn4: TBitBtn;
procedure BitBtn4Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure bjChange(Sender: TObject);
procedure xqChange(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure DBGrid2CellClick(Column: TColumn);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
data_path,data_path1,data_path2:string;
sqlstring:string;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm6.BitBtn4Click(Sender: TObject);
begin
close;
end;
procedure TForm6.FormCreate(Sender: TObject);
begin
data_path:=application.GetNamePath+'user/'+form1.user+'/'+'班级.mdb';
ADOQuery1.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+data_path+';';
sqlstring:='select * from 班级表';
bj.Clear;
with ADOQuery1 do
begin
close;
sql.Clear;
sql.Add(sqlstring);
open;
first;
while not eof do
begin
bj.Items.Add(fieldbyname('名称').asstring);
next;
end;
end;
end;
procedure TForm6.bjChange(Sender: TObject);
var
i,xuezhi:integer;
begin
data_path2:=application.GetNamePath+'user/'+form1.user+'/'+trim(bj.Text)+'.mdb';
ADOQuery3.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+data_path2+';';
sqlstring:='select * from 班级表 where 名称=:mc';
xq.Clear;
with ADOQuery1 do
begin
close;
sql.Clear;
sql.Add(sqlstring);
Parameters.ParamByName('mc').Value:=trim(bj.Text);
open;
xuezhi:=fieldbyname('学制').AsInteger;
end;
for i:=1 to xuezhi*2 do
xq.Items.Add(inttostr(i));
sqlstring:='select 学号,姓名 from 学生信息表';
form1.editdata(ADOQuery3,sqlstring,0);
end;
procedure TForm6.xqChange(Sender: TObject);
var
i,xuezhi:integer;
begin
data_path1:=application.GetNamePath+'user/'+form1.user+'/'+trim(bj.Text)+'.mdb';
ADOQuery2.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+data_path1+';';
sqlstring:='select * from 第'+trim(xq.Text)+'学期成绩表';
km.Clear;
with ADOQuery2 do
begin
close;
sql.Clear;
sql.Add(sqlstring);
open;
for i:=3 to ADOQuery2.Recordset.Fields.Count-3 do // 读取字段名
begin
km.Items.Add(ADOQuery2.Recordset.Fields[i].name);
end;
end;
end;
procedure TForm6.BitBtn1Click(Sender: TObject);
var
j,xuezhi:integer;
pjf,zf:double;
begin
pjf:=0;
zf:=0;
if (bj.Text='') or (xq.Text='') then
begin
showmessage('请选择班级和学期!');
exit;
end;
if (km.Text='') or (cj.Text='') then
begin
showmessage('请输入学号或姓名');
exit;
end;
sqlstring:='select * from 第'+trim(xq.Text)+'学期成绩表 where 学号=:number';
with ADOQuery2 do
begin
close;
sql.Clear;
sql.Add(sqlstring);
Parameters.ParamByName('number').Value:=trim(xh.Text);
open;
if recordcount<1 then
begin
sqlstring:='insert into 第'+trim(xq.Text)+'学期成绩表(学号,姓名,'+trim(km.text)+') values(:number,:name,:cj)';
close;
sql.Clear;
sql.Add(sqlstring);
Parameters.ParamByName('number').Value:=trim(xh.Text);
Parameters.ParamByName('name').Value:=trim(xm.Text);
Parameters.ParamByName('cj').Value:=strtofloat(trim(cj.Text));
execsql;
close;
end
else
begin
sqlstring:='update 第'+trim(xq.Text)+'学期成绩表 set '+trim(km.text)+'=:cj where 学号=:number';
close;
sql.Clear;
sql.Add(sqlstring);
Parameters.ParamByName('number').Value:=trim(xh.Text);
Parameters.ParamByName('cj').Value:=strtofloat(trim(cj.Text));
execsql;
end;
end;
sqlstring:='select * from 第'+trim(xq.Text)+'学期成绩表';
with ADOQuery2 do
begin
close;
sql.Clear;
sql.Add(sqlstring);
open;
end;
with ADOQuery3 do
begin
next;
xh.Text:=fieldbyname('学号').AsString;
xm.Text:=fieldbyname('姓名').AsString;
end;
end;
procedure TForm6.DBGrid2CellClick(Column: TColumn);
begin
with ADOQuery3 do
begin
xh.Text:=fieldbyname('学号').AsString;
xm.Text:=fieldbyname('姓名').AsString;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -