📄 earning.frm
字号:
BeginProperty Split0
BeginProperty Column00
ColumnWidth = 975.118
EndProperty
BeginProperty Column01
ColumnWidth = 959.811
EndProperty
BeginProperty Column02
ColumnWidth = 1035.213
EndProperty
BeginProperty Column03
ColumnWidth = 1124.787
EndProperty
BeginProperty Column04
ColumnWidth = 1200.189
EndProperty
BeginProperty Column05
ColumnWidth = 1005.165
EndProperty
EndProperty
End
Begin MSAdodcLib.Adodc Adodc1
Height = 495
Left = 120
Top = 0
Visible = 0 'False
Width = 1215
_ExtentX = 2143
_ExtentY = 873
ConnectMode = 0
CursorLocation = 3
IsolationLevel = -1
ConnectionTimeout= 15
CommandTimeout = 30
CursorType = 3
LockType = 3
CommandType = 8
CursorOptions = 0
CacheSize = 50
MaxRecords = 0
BOFAction = 0
EOFAction = 0
ConnectStringType= 1
Appearance = 1
BackColor = -2147483643
ForeColor = -2147483640
Orientation = 0
Enabled = -1
Connect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db\teacher.mdb;Persist Security Info=False"
OLEDBString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db\teacher.mdb;Persist Security Info=False"
OLEDBFile = ""
DataSourceName = ""
OtherAttributes = ""
UserName = ""
Password = ""
RecordSource = "select * from 工资表"
Caption = "Adodc1"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
_Version = 393216
End
Begin VB.Label Label5
Caption = "总收入"
ForeColor = &H000000FF&
Height = 495
Left = 3600
TabIndex = 6
Top = 5640
Width = 975
End
Begin VB.Label Label4
Caption = "部门"
ForeColor = &H000000FF&
Height = 495
Left = 3600
TabIndex = 5
Top = 4680
Width = 1215
End
Begin VB.Label Label3
Caption = "姓名"
ForeColor = &H000000FF&
Height = 375
Left = 480
TabIndex = 4
Top = 5640
Width = 975
End
Begin VB.Label Label2
Caption = "工号"
ForeColor = &H000000FF&
Height = 375
Left = 480
TabIndex = 3
Top = 4680
Width = 975
End
Begin VB.Label Label1
Alignment = 2 'Center
Caption = "查询方式"
BeginProperty Font
Name = "宋体"
Size = 15.75
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H000000FF&
Height = 375
Left = 2880
TabIndex = 2
Top = 3960
Width = 2055
End
End
Attribute VB_Name = "earning"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Command2_Click() '设置查询条件
If (Trim(Text4.Text) <> "" And Combo1.Text = "") Or (Trim(Text4.Text) = "" And Combo1.Text <> "") Then
'当分数条件设置不完整的时候,退出
MsgBox "分数条件设置不完整", vbOKOnly, "信息提示"
Exit Sub
End If
condstr = "" '条件表达式
If Trim(Text1.Text) <> "" Then
If condstr = "" Then
condstr = "工资表.工号 like '" + Trim(Text1.Text) + "'"
Else
condstr = condstr + " and 工资表.工号 like '" + Trim(Text1.Text) + "'"
End If
End If
'如果工号信息不为空,就把工号信息添加到工资表当中
If Trim(Text2.Text) <> "" Then
If condstr = "" Then
condstr = "姓名 like '" + Trim(Text2.Text) + "'"
Else
condstr = condstr + " and 姓名 like '" + Trim(Text2.Text) + "'"
End If
End If
'如果姓名信息不为空,就把工号信息添加到工资表当中
If Trim(Text4.Text) <> "" Then
If condstr = "" Then
condstr = "工资总汇 " + Trim(Combo1.Text) + Trim(Text4.Text)
Else
condstr = condstr + " and 工资总汇 " + Trim(Combo1.Text) + Trim(Text4.Text)
End If
End If
'如果工资总汇信息不为空,就把工号信息添加到工资表当中
If Trim(Text3.Text) <> "" Then
If condstr = "" Then
condstr = "部门 like '" + Trim(Text3.Text) + "'"
Else
condstr = condstr + " and 部门 like '" + Trim(Text3.Text) + "'"
End If
End If
'如果部门信息不为空,就把工号信息添加到工资表当中
If condstr <> "" Then '当查询条件不为空的时候
Adodc1.RecordSource = "select 工资表.工号,教师表.姓名,基本工资,课费,补助,工资总汇 from 教师表,职称表,工资表 where " + condstr + " and 教师表.工号=职称表.工号 and 职称表.工号=工资表.工号"
Adodc1.Refresh
Else '当查询条件为空时候
MsgBox "请输入查询条件", vbOKOnly, "信息提示"
End If
End Sub
Private Sub Form_Load()
'初始化总收入的判断条件
Combo1.AddItem (">")
Combo1.AddItem ("<")
Combo1.AddItem ("=")
Call deldata("工资表") '删除工资表的所有信息,为下面的工作做准备
Dim mrc As ADODB.Recordset
sql = "select 工号,sum(基本课费) as 课费 from 课程表 Group by 工号"
'对工号进行分组,分组后,对每个人的基本课费进行相加的运算
Set mrc = exesql(sql)
'通过循环把得到的基本课费和工号插入到工资表
For i = 1 To mrc.RecordCount
sql = "insert into 工资表 values('" & mrc.Fields("工号") & "',0,'" & mrc.Fields("课费") & "',0,0)"
'插入对于工号的课费
exesql (sql)
mrc.MoveNext
Next
mrc.Close
Dim mrc2 As ADODB.Recordset
sql = "select 教师表.工号 from 教师表 where 教师表.工号 not in (select 工资表.工号 from 工资表)"
'找出那些没有任何任教课程的教师
Set mrc2 = exesql(sql)
'把那些没有任何任教课程的教师的基本课费置0,同时插入到工资表中
For i = 1 To mrc2.RecordCount
sql = "insert into 工资表 values('" & mrc2.Fields("工号") & "',0,0,0,0)"
exesql (sql)
mrc2.MoveNext '跳到下一条记录
Next
mrc2.Close
Dim mrc3 As ADODB.Recordset
sql = "select 工资表.工号,补助表.基本工资,(水电补助+偏远补助+房屋补助+电话补助) as 补助 from 工资表,职称表,补助表 where 工资表.工号=职称表.工号 and 职称表.职称=补助表.职称"
'把工资表中的补助和对应的职称的基本工资找出
Set mrc3 = exesql(sql)
For i = 1 To mrc3.RecordCount
sql = "update 工资表 set 基本工资='" & mrc3.Fields("基本工资") & "',补助='" & mrc3.Fields("补助") & "',工资总汇=课费+'" & mrc3.Fields("基本工资") & "'+'" & mrc3.Fields("补助") & "' where 工号='" & mrc3.Fields("工号") & "'"
'把工资表中的补助和对应的职称的基本工资更新到工资表中
exesql (sql) '执行
mrc3.MoveNext '跳到下一条记录
Next
mrc3.Close
Adodc1.RecordSource = "select 工资表.工号,教师表.姓名,基本工资,课费,补助,工资总汇 from 工资表,教师表 where 工资表.工号=教师表.工号"
'把工资的各种信息返回到Adodc1里面
Adodc1.Refresh '更新
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -