我做过通用的排课大师这是数据模块的DFM希望你看得懂
里面包含了表与表间关系GRNO是年级代码CLNO是班代码
GRNAME是年级名称,CLNAME是班名称,TE是老师,以此类推
SUB是科目,
object datamod: Tdatamod
OldCreateOrder = False
OnCreate = DataModuleCreate
Left = 193
Top = 111
Height = 338
Width = 433
object datacon: TADOConnection
ConnectionString =
'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Mode=' +
'Read|Write;Extended Properties="";Locale Identifier=2052;Jet OLE' +
'DB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB
atab' +
'ase Password="";Jet OLEDB:Engine Type=4;Jet OLEDB
atabase Locki' +
'ng Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global B' +
'ulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:' +
'Create System Database=False;Jet OLEDB:Encrypt Database=False;Je' +
't OLEDB
on'#39't Copy Locale on Compact=False;Jet OLEDB:Compact Wit' +
'hout Replica Repair=False;Jet OLEDB:SFP=False;Data Source='
LoginPrompt = False
Provider = 'Microsoft.Jet.OLEDB.4.0'
Left = 8
Top = 8
end
object tbgr: TADOTable
Connection = datacon
CursorType = ctStatic
TableName = 'grtable'
Left = 56
Top = 8
object tbgrGRNO: TWideStringField
DisplayWidth = 7
FieldName = 'GRNO'
Size = 4
end
object tbgrGRNAME: TWideStringField
DisplayWidth = 17
FieldName = 'GRNAME'
Size = 30
end
end
object tbcl: TADOTable
Connection = datacon
CursorType = ctStatic
IndexFieldNames = 'GRNO'
MasterFields = 'GRNO'
MasterSource = dsgr
TableName = 'cltable'
Left = 104
Top = 8
object tbclCLNO: TWideStringField
DisplayWidth = 7
FieldName = 'CLNO'
Size = 4
end
object tbclGRNO: TWideStringField
DisplayWidth = 5
FieldName = 'GRNO'
Size = 4
end
object tbclCLNAME: TWideStringField
DisplayWidth = 10
FieldName = 'CLNAME'
Size = 30
end
end
object dsgr: TDataSource
DataSet = tbgr
Left = 56
Top = 56
end
object dscl: TDataSource
DataSet = tbcl
Left = 104
Top = 56
end
object tbte: TADOTable
Connection = datacon
CursorType = ctStatic
IndexFieldNames = 'tename'
TableName = 'tetable'
Left = 152
Top = 8
object tbteTENO: TWideStringField
DisplayWidth = 6
FieldName = 'TENO'
Size = 4
end
object tbteTENAME: TWideStringField
DisplayWidth = 12
FieldName = 'TENAME'
end
end
object dste: TDataSource
DataSet = tbte
Left = 152
Top = 56
end
object tbarr: TADOTable
Connection = datacon
CursorType = ctStatic
IndexFieldNames = 'TENO'
MasterFields = 'TENO'
MasterSource = dste
TableName = 'arrtable'
Left = 200
Top = 8
object tbarrID: TAutoIncField
DisplayWidth = 6
FieldName = 'ID'
ReadOnly = True
end
object tbarrTENO: TWideStringField
DisplayWidth = 6
FieldName = 'TENO'
Size = 4
end
object tbarrGRNO: TWideStringField
DisplayWidth = 7
FieldName = 'GRNO'
Size = 4
end
object tbarrCLNO: TWideStringField
DisplayWidth = 6
FieldName = 'CLNO'
Size = 4
end
object tbarrSUBNO: TWideStringField
DisplayWidth = 6
FieldName = 'SUBNO'
Size = 4
end
object tbarrsubname: TStringField
DisplayWidth = 9
FieldKind = fkLookup
FieldName = 'subname'
LookupDataSet = tbsub
LookupKeyFields = 'SUBNO'
LookupResultField = 'SUBNAME'
KeyFields = 'SUBNO'
Size = 30
Lookup = True
end
object tbarrgrname: TStringField
DisplayWidth = 7
FieldKind = fkLookup
FieldName = 'grname'
LookupDataSet = tbgr
LookupKeyFields = 'GRNO'
LookupResultField = 'GRNAME'
KeyFields = 'GRNO'
Size = 30
Lookup = True
end
object tbarrclname: TStringField
DisplayWidth = 14
FieldKind = fkLookup
FieldName = 'clname'
LookupDataSet = tbcl
LookupKeyFields = 'CLNO'
LookupResultField = 'CLNAME'
KeyFields = 'CLNO'
Size = 30
Lookup = True
end
object tbarrtename: TStringField
FieldKind = fkLookup
FieldName = 'tename'
LookupDataSet = tbte
LookupKeyFields = 'TENO'
LookupResultField = 'TENAME'
KeyFields = 'TENO'
Size = 30
Lookup = True
end
end
object tbsub: TADOTable
Connection = datacon
CursorType = ctStatic
TableName = 'subtable'
Left = 248
Top = 8
object tbsubSUBNO: TWideStringField
FieldName = 'SUBNO'
Size = 4
end
object tbsubSUBNAME: TWideStringField
FieldName = 'SUBNAME'
Size = 30
end
object tbsubTENEED: TBooleanField
FieldName = 'TENEED'
end
end
object tbco: TADOTable
Connection = datacon
CursorType = ctStatic
IndexFieldNames = 'CLNO'
MasterFields = 'CLNO'
MasterSource = dscl
TableName = 'cotable'
Left = 296
Top = 8
object tbcoCLNO: TWideStringField
FieldName = 'CLNO'
Size = 4
end
object tbcoMONA: TWideStringField
FieldName = 'MONA'
Size = 37
end
object tbcoMONP: TWideStringField
FieldName = 'MONP'
Size = 37
end
object tbcoMONE: TWideStringField
FieldName = 'MONE'
Size = 37
end
object tbcoTUEA: TWideStringField
FieldName = 'TUEA'
Size = 37
end
object tbcoTUEP: TWideStringField
FieldName = 'TUEP'
Size = 37
end
object tbcoTUEE: TWideStringField
FieldName = 'TUEE'
Size = 37
end
object tbcoWEDA: TWideStringField
FieldName = 'WEDA'
Size = 37
end
object tbcoWEDP: TWideStringField
FieldName = 'WEDP'
Size = 37
end
object tbcoWEDE: TWideStringField
FieldName = 'WEDE'
Size = 37
end
object tbcoTHUA: TWideStringField
FieldName = 'THUA'
Size = 37
end
object tbcoTHUP: TWideStringField
FieldName = 'THUP'
Size = 37
end
object tbcoTHUE: TWideStringField
FieldName = 'THUE'
Size = 37
end
object tbcoFRIA: TWideStringField
FieldName = 'FRIA'
Size = 37
end
object tbcoFRIP: TWideStringField
FieldName = 'FRIP'
Size = 37
end
object tbcoFRIE: TWideStringField
FieldName = 'FRIE'
Size = 37
end
object tbcoSATA: TWideStringField
FieldName = 'SATA'
Size = 37
end
object tbcoSATP: TWideStringField
FieldName = 'SATP'
Size = 37
end
object tbcoSATE: TWideStringField
FieldName = 'SATE'
Size = 36
end
object tbcoSUNA: TWideStringField
FieldName = 'SUNA'
Size = 37
end
object tbcoSUNP: TWideStringField
FieldName = 'SUNP'
Size = 37
end
object tbcoSUNE: TWideStringField
FieldName = 'SUNE'
Size = 37
end
end
object dsarr: TDataSource
DataSet = tbarr
Left = 200
Top = 56
end
object dssub: TDataSource
DataSet = tbsub
Left = 248
Top = 56
end
object dsco: TDataSource
DataSet = tbco
Left = 296
Top = 56
end
object TBID: TADOTable
Connection = datacon
CursorType = ctStatic
TableName = 'IDTB'
Left = 56
Top = 112
object TBIDFDNAME: TWideStringField
FieldName = 'FDNAME'
Size = 15
end
object TBIDNEXTID: TWideStringField
FieldName = 'NEXTID'
Size = 4
end
end
end