智能排课系统vb代码
更新时间:2023-07-23 08:14:01 阅读量: 实用文档 文档下载
和智能智能排课系统1、2、3是一套
Vb核心代码设计
一:输入界面与代码(以班级表为例)
Dim Conn As New ADODB.Connection '连接变量
Dim SqlString As String '查询字符串
Dim Connstring As String '连接字符串
Dim RS1 As New ADODB.Recordset '记录集变量
Dim bm '定义一个变量用来存放添加记录时原来记录的位置
Dim tj As Boolean
Private Sub Command10_Click()
Form4.Hide
Form3.Show
End Sub
Private Sub Command1_Click() '移到首记录
RS1.MoveFirst
Command1.Enabled = False
Command2.Enabled = False
Command3.Enabled = True
Command4.Enabled = True
Call DispValue '显示当前记录的值
End Sub
Private Sub Command2_Click() '前移
RS1.MovePrevious
和智能智能排课系统1、2、3是一套
If RS1.BOF Then
RS1.MoveFirst
Command1.Enabled = False
Command2.Enabled = False
End If
Command3.Enabled = True
Command4.Enabled = True
Call DispValue '显示当前记录的值
End Sub
Private Sub Command3_Click() '后移
RS1.MoveNext
If RS1.EOF Then
RS1.MoveLast
Command3.Enabled = False
Command4.Enabled = False
End If
Command1.Enabled = True
Command2.Enabled = True
Call DispValue '显示当前记录的值
End Sub
Private Sub Command4_Click() '移到末记录
RS1.MoveLast
Command3.Enabled = False
Command4.Enabled = False
Command1.Enabled = True
Command2.Enabled = True
Call DispValue '显示当前记录的值
End Sub
Private Sub Command5_Click() '删除记录
If (MsgBox("真的要删除该记录吗?", vbQuestion + vbYesNo, "删除提示") = vbYes) Then RS1.Delete '删除
RS1.MoveNext
If RS1.EOF Then '如果删除的是末记录
RS1.MoveLast
End If
End If
Call DispValue '显示当前记录的值
End Sub
Private Sub Command6_Click() '添加记录
bm = RS1.Bookmark '用书签记下当前记录位置
和智能智能排课系统1、2、3是一套
RS1.AddNew '调用AddNew方法增加新记录
Call EditStatus '置按钮和文本框状态
Call EmptyText '清空文本框
tj = True '是添加新记录
End Sub
Private Sub Command7_Click() '修改记录
Call EditStatus '置按钮和文本框状态
tj = False '不是添加记录,是修改记录
End Sub
Private Sub Command8_Click() '确定操作
Call SetValue '给各字段赋值
RS1.Update '调用Update方法保存
Call OkStatus '置按钮和文本框状态
MsgBox ("保存成功") '给出保存成功提示
End Sub
Private Sub Command9_Click() '取消操作
If (MsgBox("真的要取消修改吗?", vbQuestion + vbYesNo)) = vbYes Then
RS1.CancelUpdate
If tj Then '如果是增加新记录
RS1.Bookmark = bm '把记录指针移动到原来的位置
End If
Call DispValue '显示当前记录的值
Call OkStatus '置按钮和文本框状态
End If
End Sub
Private Sub Form_Load()
Connstring = "Driver={SQL Server};Server=PC2012110412ewr.;Database=GXPK;" _
& "uid =sa;pwd=t123" 'SQL Server普通安全模式建立到Pubs数据库的连接的连接字符串
'设置连接字符串
With Conn
.ConnectionString = Connstring '给ConnectionString属性赋值
.ConnectionTimeout = 10
.Open '给连接的ConnectionString属性赋值,然后使用求带参数的Open方法打开连接 End With
MsgBox ("连接成功")
RS1.CursorType = adOpenDynamic
RS1.CursorLocation = adUseClient '游标服务的位置、默认值adUseServer。游标用于:控制记录定位、控制其他用户对数据库所作的更改的可视性、控制数据可更新性
RS1.LockType = adLockOptimistic
RS1.Open "班级信息表", Conn, 3, 3
和智能智能排课系统1、2、3是一套
If RS1.EOF And RS1.BOF Then '如果表为空
MsgBox "表为空,请添加记录"
Else
Call DispValue '显示当前记录的值
End If
Call TextDisable '使文本框不可用
Command8.Enabled = False
Command9.Enabled = False
End Sub
Private Sub DispValue()
Text1.Text = RS1.Fields("班级编号")
If IsNull(Trim(RS1.Fields("班级名称"))) Then '解决课程名字段值为空移指针出错(无效使用NULL)的问题,其他字段类推。
Text2.Text = ""
Else
Text2.Text = RS1.Fields("班级名称")
End If
Text5.Text = RS1.Fields("所属系")
Text7.Text = RS1.Fields("学生人数")
End Sub
Private Sub SetValue()
RS1.Fields("班级编号") = Text1.Text
RS1.Fields("班级名称") = Text2.Text
RS1.Fields("所属系称") = Text5.Text
RS1.Fields("学生人数") = Text7.Text
End Sub
Private Sub TextEnable() '使所有的文本框可用
Text1.Enabled = True
Text2.Enabled = True
Text5.Enabled = True
Text7.Enabled = True
End Sub
Private Sub TextDisable() '使所有的文本框不可用
Text1.Enabled = False
Text2.Enabled = False
Text5.Enabled = False
Text7.Enabled = False
End Sub
Private Sub EditStatus() '设置在编辑或添加记录时的各控件状态
Command1.Enabled = False
和智能智能排课系统1、2、3是一套
Command2.Enabled = False
Command3.Enabled = False
Command4.Enabled = False
Command5.Enabled = False
Command6.Enabled = False
Command7.Enabled = False
Command8.Enabled = True
Command9.Enabled = True
Call TextEnable
End Sub
Private Sub EmptyText() '清空文本框
Text1.Text = ""
Text2.Text = ""
Text5.Text = ""
Text7.Text = ""
End Sub
Private Sub OkStatus() '设置不在编辑或添加记录时的各控件状态
Command1.Enabled = True
Command2.Enabled = True
Command3.Enabled = True
Command4.Enabled = True
Command5.Enabled = True
Command6.Enabled = True
Command7.Enabled = True
Command8.Enabled = False
Command9.Enabled = False
Call TextDisable
End Sub
2、查看课表窗口及代码(以教室课表为例)
Dim Conn As New ADODB.Connection '连接变量
和智能智能排课系统1、2、3是一套
Dim SqlString As String '查询字符串
Dim Connstring As String '连接字符串
Dim RS1 As New ADODB.Recordset '记录集变量
Dim Cmd As New mand
Private Sub Command1_Click()
Connstring = "Driver={SQL Server};Server=PC2012110412ewr.;Database=GXPK;" _
& "uid =sa;pwd=t123" 'SQL Server普通安全模式建立到Pubs数据库的连接的连接字符串
'设置连接字符串
With Conn
.ConnectionString = Connstring '给ConnectionString属性赋值
.ConnectionTimeout = 10
.Open '给连接的ConnectionString属性赋值,然后使用求带参数的Open方法打开连接 End With
MsgBox ("连接成功")
Command1.Enabled = False '连接按钮不可用
Command2.Enabled = True '显示数据可用
End Sub
Private Sub Command2_Click()
Set Cmd.ActiveConnection = Conn '设置Command对象的ActiveConnection为某个打开的连接
SqlString = "Select 课程名称,教师姓名,上课教室,班级编号,上课时间 from 排课表 Where 上课教室 like '" & Text1.Text & "' " '形成查询字符串1
mandText = SqlString '设置Command对象执行的命令字符串
mandType = adCmdText '设置命令类型,表示CommandText中为一命令文本 ,童P188
Set RS1 = Cmd.Execute '执行命令得到一个结果记录集
Call ShowData(RS1, MSFlexGrid1) '调用过程显示记录集中的数据
Command1.Visible = True
End Sub
Private Sub ShowData(Rs As ADODB.Recordset, Dgrid As MSFlexGrid)
'该过程用来在Dgrid网格中显示记录集RS中的内容
Dim RowNum As Integer
RowNum = 1 '代表MsFlexGrid控件的行数
Dgrid.Rows = RowNum '设置MsFlexGrid控件的行数
Dgrid.Cols = Rs.Fields.Count '设置MsFlexGrid控件的列数
For j = 0 To Rs.Fields.Count - 1 '遍列所有列
Dgrid.TextMatrix(0, j) = Rs.Fields(j).Name '把列名显示在设置MsFlexGrid控件的首行
Next j
Do While Not Rs.EOF '如果不是记录集的结尾
RowNum = RowNum + 1 '行数加1
Dgrid.Rows = RowNum '设置MsFlexGrid控件的行数
For j = 0 To Rs.Fields.Count - 1 '遍列所有列
和智能智能排课系统1、2、3是一套
If Not IsNull(Rs.Fields(j).Value) Then '如果列中的数据不为空,切记不能用如 if Var1=Null来判断变量Var1的值是否为Null
Dgrid.TextMatrix(RowNum - 1, j) = Rs.Fields(j).Value '把列的数据显示在MsFlexGrid的相应网格中
End If
Next j
Rs.MoveNext '记录指针下移
Loop
Command2.Enabled = False
End Sub
Private Sub Command3_Click()
Form14.Hide
Form3.Show
End Sub
Private Sub Command4_Click()
RS1.Close '关闭记录集
Conn.Close '关闭连接
Text1.Text = ""
Command1.Enabled = True '连接按钮不可用
Command2.Enabled = True '显示数据可用
End Sub
Private Sub Command5_Click()
DataReport1.Show vbModal, Me
End Sub
3、查看初始化窗口及代码
Option Explicit
Dim SQL As String
Dim Conn As New ADODB.Connection '连接变量
和智能智能排课系统1、2、3是一套
Dim SqlString As String '查询字符串
Dim Connstring As String
Dim msg As String '连接字符串
Private Sub CmdSave_Click()
'进行初始化操作
Dim Counnter As Integer
Connstring = "Driver={SQL
Server};Server=PC2012110412ewr.;Database=GXPK;" _
& "uid =sa;pwd=t123" 'SQL Server普通安全模式建立到Pubs数据库的
连接的连接字符串
'设置连接字符串
With Conn
.ConnectionString = Connstring '给ConnectionString属性赋值
.ConnectionTimeout = 10
.Open '给连接的ConnectionString属性赋值,然后使用求带参数的Open
方法打开连接
End With
MsgBox ("连接成功")
ProgressBar1.Visible = True
ProgressBar1.Max = 200
ProgressBar1.Value = ProgressBar1.Min
msg = MsgBox("您确实要初始化这些数据吗?", vbYesNo)
If msg = vbNo Then Exit Sub
For Counnter = ProgressBar1.Min To ProgressBar1.Max
ProgressBar1.Value = Counnter
If Check1.Value = 1 Then '如果班级信息表被选中
'删除全部提醒信息数据
SQL = "delete from 班级信息表"
Conn.Execute SQL
End If
If Check2.Value = 1 Then '如果课程信息表被选中
'删除全部通讯日志数据
SQL = "delete from 课程信息表"
Conn.Execute SQL
End If
If Check3.Value = 1 Then '如果班级课程信息表被选中
'删除全部群组信息数据
SQL = "delete from 任课表"
Conn.Execute SQL
End If
If Check4.Value = 1 Then '如果教师信息表被选中
'删除全部联系人信息数据
SQL = "delete from 教师信息表"
和智能智能排课系统1、2、3是一套
Conn.Execute SQL
End If
If Check6.Value = 1 Then '如果排课信息表被选中
'删除全部联系人信息数据
SQL = "delete from 排课表"
Conn.Execute SQL
End If
Next Counnter
ProgressBar1.Visible = False
ProgressBar1.Value = ProgressBar1.Min
End Sub
Private Sub CmdExit_Click()
'退出操作
Form15.Hide
Form3.Show
End Sub
Private Sub Form_Unload(Cancel As Integer)
'退出操作
Form15.Hide
Form3.Show
End Sub
4、查看自动排课窗口及代码
Dim Conn As New ADODB.Connection '连接变量
Dim SqlString As String '查询字符串
Dim Connstring As String
Dim dlaytime As Integer
Private Sub Command2_Click()
Dim SQL As String
和智能智能排课系统1、2、3是一套
Dim sc As ADODB.Recordset
Set sc = New ADODB.Recordset
SQL = "deletel 排课表 "
End Sub
Private Sub Command3_Click()
Form9.Hide
Form3.Show
End Sub
Private Sub Form_Load()
constr = "Driver={SQL Server};Server=PC2012110412ewr.;Database=GXPK;" _
& "uid =sa;pwd=t123" 'SQL Server普通安全模式建立到Pubs数据库的连接的连接字符串 '定义数据库连接
With Conn
.ConnectionString = constr '给ConnectionString属性赋值
.ConnectionTimeout = 10
.Open '给连接的ConnectionString属性赋值,然后使用求带参数的Open方法打开连接 End With
MsgBox ("连接成功")
ProgressBar1.Visible = True
ProgressBar1.Max = 200
ProgressBar1.Value = ProgressBar1.Min
End Sub
Private Sub Command1_Click() '开始
Dim SQL, sqll, sqlll As String
Dim rt As New ADODB.Recordset
Dim rm As New ADODB.Recordset
Dim rn As New ADODB.Recordset
Dim rp As New ADODB.Recordset
Dim rq As New ADODB.Recordset
Dim i As Integer
Set Rs = New ADODB.Recordset
SQL = "select * from 任课表 "
Set Rs = Conn.Execute(SQL)
ProgressBar1.Max = 100
Do While ProgressBar1.Value < ProgressBar1.Max
Do Until Rs.EOF = True
i = Rs("每周节数")
Do Until i = 0
sqll = "select * from 时间表"
Set rt = Conn.Execute(sqll)
Do Until rt.EOF = True
Set rp = New ADODB.Recordset
coom = "select * from 排课表 where [班级编号]='" + Rs("班级编号") + "'and [上课时间]='" + rt("上课时间") + "'"
和智能智能排课系统1、2、3是一套
Set rp = Conn.Execute(coom)
cool = "select * from 排课表 where [上课时间]='" + rt("上课时间") + "'and [教师姓名]='" + Rs("教师姓名") + "'"
Set rq = Conn.Execute(cool)
If rp.EOF = True And rq.EOF = True Then
sqlll = "select * from 教室信息表"
Set rm = Conn.Execute(sqlll)
Do Until rm.EOF = True
coon = "select * from 排课表 where [上课时间]='" + rt("上课时间") + "'and [上课教室]='" + rm("教室名称") + "'"
Set rn = Conn.Execute(coon)
If rn.EOF = True Then
SQL = "insert into 排课表 ([课程名称],[教师姓名],[上课教室],[班级编号],[上课时间]) values ('" + Rs("课程名称") + "','" + Rs("教师姓名") + "','" + rm("教室名称") + "','" + Rs("班级编号") + "','" + rt("上课时间") + "')"
Set rq = Conn.Execute(SQL)
Exit Do
Else
rm.MoveNext
End If
Loop
Exit Do
Else
rt.MoveNext
End If
Loop
i = i - 1
Loop
Rs.MoveNext
Loop
ProgressBar1.Value = ProgressBar1.Value + 1
DoEvents
Loop
MsgBox "自动排课已完成", vbInformation, "提示"
End Sub
Private Sub Timer1_Timer()
If dlaytime >= 100 Then
'Timer1.Enabled = False
Load frmLogin
frmLogin.Show
Else
dlaytime = dlaytime + 1
和智能智能排课系统1、2、3是一套
P1.Value = dlaytime
End If
End Sub
5、查看手动调课窗口及代码
Dim Conn As New ADODB.Connection '连接变量
Dim SqlString As String '查询字符串
Dim Connstring As String
Private Sub Command2_Click()
Form11.Hide
Form3.Show
End Sub
Private Sub Command5_Click()
Dim Conn As New ADODB.Connection '连接变量
Dim SqlString As String '查询字符串
Dim Connstring As String '连接字符串
Dim RS1 As New ADODB.Recordset '记录集变量
Dim Cmd As New mand
Connstring = "Driver={SQL Server};Server=PC2012110412ewr.;Database=GXPK;" _
& "uid =sa;pwd=t123" 'SQL Server普通安全模式建立到Pubs数据库的连接的连接字符串
'设置连接字符串
With Conn
.ConnectionString = Connstring '给ConnectionString属性赋值
.ConnectionTimeout = 10
.Open '给连接的ConnectionString属性赋值,然后使用求带参数的Open方法打开连接 End With
Set Cmd.ActiveConnection = Conn '设置Command对象的ActiveConnection为某个打开
和智能智能排课系统1、2、3是一套
的连接
SqlString = "Select 课程名称,教师姓名,上课教室,班级编号,上课时间 from 排课表 " '形成查询字符串1
mandText = SqlString '设置Command对象执行的命令字符串
mandType = adCmdText '设置命令类型,表示CommandText中为一命令文本 ,童P188
Set RS1 = Cmd.Execute '执行命令得到一个结果记录集
Call ShowData(RS1, MSFlexGrid1) '调用过程显示记录集中的数据
End Sub
Private Sub Form_Load()
constr = "Driver={SQL Server};Server=PC2012110412ewr.;Database=GXPK;" _
& "uid =sa;pwd=t123" 'SQL Server普通安全模式建立到Pubs数据库的连接的连接字符串 '定义数据库连接
With Conn
.ConnectionString = constr '给ConnectionString属性赋值
.ConnectionTimeout = 10
.Open '给连接的ConnectionString属性赋值,然后使用求带参数的Open方法打开连接 End With
MsgBox ("连接成功")
End Sub
Private Sub Command1_Click() '调整教室
Dim rt As New ADODB.Recordset
If (Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "") Then
MsgBox ("请输入完整信息")
Else
Set Rs = New ADODB.Recordset
SQL = "select * from 排课表"
Set Rs = Conn.Execute(SQL)
If Rs("上课教室") = Text4.Text Then
MsgBox ("该时间段该教室已被占用,请重新选择")
Text4.Text = ""
Text5.Text = ""
Else
Set Rs = New ADODB.Recordset
SQL = "update 排课表 set [上课教室]='" + Text4.Text + "' where [课程名称]='" + Text1.Text + "' and [教师姓名]='" + Text2.Text + "' and [上课时间]='" + Text5.Text + "'"
Set Rs = Conn.Execute(SQL)
MsgBox ("教室调整成功")
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
和智能智能排课系统1、2、3是一套
End If
End If
End Sub
Private Sub Command3_Click() '调整时间
Dim rt As New ADODB.Recordset
If (Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "") Then
MsgBox ("请输入完整信息")
Else
Set Rs = New ADODB.Recordset
SQL = "select * from 排课表"
Set Rs = Conn.Execute(SQL)
If Rs("上课时间") = Text5.Text Then
MsgBox ("该教室该时间段已被占用,请重新选择")
Text4.Text = ""
Text5.Text = ""
Else
Set Rs = New ADODB.Recordset
SQL = "update 排课表 set [上课时间]='" + Text5.Text + "' where [课程名称]='" + Text1.Text + "' and [教师姓名]='" + Text2.Text + "' and [教室名称]='" + Text4.Text + "'"
Set Rs = Conn.Execute(SQL)
MsgBox ("时间调整成功")
'Adodc1.Refresh
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
End If
End If
End Sub
Private Sub ShowData(Rs As ADODB.Recordset, Dgrid As MSFlexGrid)
'该过程用来在Dgrid网格中显示记录集RS中的内容
Dim RowNum As Integer
RowNum = 1 '代表MsFlexGrid控件的行数
Dgrid.Rows = RowNum '设置MsFlexGrid控件的行数
Dgrid.Cols = Rs.Fields.Count '设置MsFlexGrid控件的列数
For j = 0 To Rs.Fields.Count - 1 '遍列所有列
Dgrid.TextMatrix(0, j) = Rs.Fields(j).Name '把列名显示在设置MsFlexGrid控件的首行
Next j
Do While Not Rs.EOF '如果不是记录集的结尾
RowNum = RowNum + 1 '行数加1
Dgrid.Rows = RowNum '设置MsFlexGrid控件的行数
和智能智能排课系统1、2、3是一套
For j = 0 To Rs.Fields.Count - 1 '遍列所有列
If Not IsNull(Rs.Fields(j).Value) Then '如果列中的数据不为空,切记不能用如 if Var1=Null来判断变量Var1的值是否为Null
Dgrid.TextMatrix(RowNum - 1, j) = Rs.Fields(j).Value '把列的数据显示在MsFlexGrid的相应网格中
End If
Next j
Rs.MoveNext '记录指针下移
Loop
End Sub
正在阅读:
智能排课系统vb代码07-23
如何查找中国科学院及国内外学位论文04-05
以职业道德教育为例探索立德树人视角下高校思想政治理论课创新03-16
警示教育心得体会优选参考模板08-16
车牌识别系统 - 图像预处理 毕业论文11-24
房地产营销策划问题与对策研究05-18
计算智能习题合集04-25
铁塔最终检验作业指导书04-28
感受自然优秀作文(精彩10篇)03-26
无机化学考研辅导11-27
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 代码
- 智能
- 系统
- 女性尖锐湿疣临床治疗效果分析
- 谈中俄贸易中的“灰色清关”问题
- H 型高血压增加脑梗死的复发风险
- 江西省城市居住小区物业管理条例(修正案)327正式(送审稿)
- 输送血液的泵说课稿
- 西安市物业管理条例
- 12 公司财务会计制度
- 最新2013Android高级技术笔试面试试题及答案
- 2015年考研英语备考经验分享
- 少先队志愿辅导员先进材料
- 2011年广东省深圳市宝安区中考数学二模试卷
- 河南大学教育硕士考研难度大不大
- 1.4.3《含一个量词的命题的否定》
- 6第六,八章-中级财务会计练习题
- 我国变频器市场现状
- 公路隧道火灾案例统计分析
- 26个字母和数字符号ASCII码对照表
- 泡沫混凝土施工方案
- “丹青绘家园”大型赈灾献爱心笔会在首钢举行
- 企业内部控制论文:浅谈企业内部会计控制