智能排课系统vb代码.docx
《智能排课系统vb代码.docx》由会员分享,可在线阅读,更多相关《智能排课系统vb代码.docx(25页珍藏版)》请在冰点文库上搜索。
![智能排课系统vb代码.docx](https://file1.bingdoc.com/fileroot1/2023-5/18/d084ad4a-53bc-4831-8f5f-127242efde54/d084ad4a-53bc-4831-8f5f-127242efde541.gif)
智能排课系统vb代码
Vb核心代码设计
一:
输入界面与代码(以班级表为例)
DimConnAs New ADODB、Connection'连接变量
DimSqlStringAsString '查询字符串
Dim ConnstringAs String '连接字符串
DimRS1AsNewADODB、Recordset '记录集变量
Dimbm'定义一个变量用来存放添加记录时原来记录得位置
DimtjAsBoolean
Private Submand10_Click()
Form4、Hide
Form3、Show
EndSub
PrivateSubmand1_Click()'移到首记录
RS1、MoveFirst
mand1、Enabled =False
mand2、Enabled= False
mand3、Enabled=True
mand4、Enabled =True
CallDispValue'显示当前记录得值
End Sub
PrivateSubmand2_Click()'前移
RS1、MovePrevious
IfRS1、BOFThen
RS1、MoveFirst
mand1、Enabled=False
mand2、Enabled=False
EndIf
mand3、Enabled=True
mand4、Enabled = True
Call DispValue'显示当前记录得值
EndSub
PrivateSubmand3_Click()'后移
RS1、MoveNext
If RS1、EOFThen
RS1、MoveLast
mand3、Enabled=False
mand4、Enabled=False
EndIf
mand1、Enabled=True
mand2、Enabled= True
CallDispValue'显示当前记录得值
End Sub
Private Submand4_Click()'移到末记录
RS1、MoveLast
mand3、Enabled= False
mand4、Enabled=False
mand1、Enabled= True
mand2、Enabled=True
CallDispValue '显示当前记录得值
End Sub
Private Submand5_Click() '删除记录
If (MsgBox("真得要删除该记录吗?
",vbQuestion+vbYesNo,"删除提示") =vbYes)Then
RS1、Delete '删除
RS1、MoveNext
IfRS1、EOFThen'如果删除得就是末记录
RS1、MoveLast
EndIf
EndIf
CallDispValue '显示当前记录得值
EndSub
PrivateSubmand6_Click()'添加记录
bm =RS1、Bookmark '用书签记下当前记录位置
RS1、AddNew'调用AddNew方法增加新记录
CallEditStatus'置按钮与文本框状态
CallEmptyText '清空文本框
tj=True'就是添加新记录
EndSub
PrivateSubmand7_Click()'修改记录
CallEditStatus'置按钮与文本框状态
tj=False '不就是添加记录,就是修改记录
EndSub
PrivateSubmand8_Click()'确定操作
Call SetValue'给各字段赋值
RS1、Update '调用Update方法保存
Call OkStatus'置按钮与文本框状态
MsgBox("保存成功")'给出保存成功提示
End Sub
PrivateSubmand9_Click()'取消操作
If(MsgBox("真得要取消修改吗?
",vbQuestion+ vbYesNo)) = vbYesThen
RS1、CancelUpdate
Iftj Then '如果就是增加新记录
RS1、Bookmark=bm'把记录指针移动到原来得位置
EndIf
CallDispValue'显示当前记录得值
CallOkStatus'置按钮与文本框状态
EndIf
End Sub
PrivateSubForm_Load()
Connstring="Driver={SQLServer};Server=PC2012110412ewr、;Database=GXPK;"_
&"uid=sa;pwd=t123" 'SQL Server普通安全模式建立到Pubs数据库得连接得连接字符串
'设置连接字符串
WithConn
、ConnectionString= Connstring'给ConnectionString属性赋值
、ConnectionTimeout=10
、Open'给连接得ConnectionString属性赋值,然后使用求带参数得Open方法打开连接
EndWith
MsgBox("连接成功")
RS1、CursorType =adOpenDynamic
RS1、CursorLocation= adUseClient '游标服务得位置、默认值adUseServer。
游标用于:
控制记录定位、控制其她用户对数据库所作得更改得可视性、控制数据可更新性
RS1、LockType =adLockOptimistic
RS1、Open"班级信息表",Conn, 3,3
IfRS1、EOFAnd RS1、BOF Then'如果表为空
MsgBox "表为空,请添加记录"
Else
CallDispValue '显示当前记录得值
EndIf
CallTextDisable'使文本框不可用
mand8、Enabled =False
mand9、Enabled =False
EndSub
PrivateSubDispValue()
Text1、Text=RS1、Fields("班级编号")
IfIsNull(Trim(RS1、Fields("班级名称")))Then '解决课程名字段值为空移指针出错(无效使用NULL)得问题,其她字段类推。
Text2、Text= ""
Else
Text2、Text=RS1、Fields("班级名称")
EndIf
Text5、Text = RS1、Fields("所属系")
Text7、Text = RS1、Fields("学生人数")
EndSub
PrivateSubSetValue()
RS1、Fields("班级编号")= Text1、Text
RS1、Fields("班级名称")=Text2、Text
RS1、Fields("所属系称") =Text5、Text
RS1、Fields("学生人数")= Text7、Text
EndSub
PrivateSubTextEnable()'使所有得文本框可用
Text1、Enabled=True
Text2、Enabled =True
Text5、Enabled= True
Text7、Enabled=True
EndSub
PrivateSub TextDisable()'使所有得文本框不可用
Text1、Enabled= False
Text2、Enabled=False
Text5、Enabled=False
Text7、Enabled= False
EndSub
PrivateSubEditStatus() '设置在编辑或添加记录时得各控件状态
mand1、Enabled = False
mand2、Enabled=False
mand3、Enabled=False
mand4、Enabled=False
mand5、Enabled=False
mand6、Enabled =False
mand7、Enabled=False
mand8、Enabled=True
mand9、Enabled =True
Call TextEnable
EndSub
PrivateSubEmptyText()'清空文本框
Text1、Text=""
Text2、Text=""
Text5、Text =""
Text7、Text=""
EndSub
Private Sub OkStatus()'设置不在编辑或添加记录时得各控件状态
mand1、Enabled = True
mand2、Enabled=True
mand3、Enabled= True
mand4、Enabled=True
mand5、Enabled =True
mand6、Enabled=True
mand7、Enabled =True
mand8、Enabled =False
mand9、Enabled= False
CallTextDisable
EndSub
2、查瞧课表窗口及代码(以教室课表为例)
DimConn AsNewADODB、Connection'连接变量
Dim SqlStringAsString '查询字符串
DimConnstring As String '连接字符串
DimRS1AsNew ADODB、Recordset '记录集变量
Dim CmdAsNewADODB、mand
PrivateSub mand1_Click()
Connstring="Driver={SQLServer};Server=PC2012110412ewr、;Database=GXPK;" _
&"uid =sa;pwd=t123" 'SQLServer普通安全模式建立到Pubs数据库得连接得连接字符串
'设置连接字符串
WithConn
、ConnectionString =Connstring'给ConnectionString属性赋值
、ConnectionTimeout=10
、Open'给连接得ConnectionString属性赋值,然后使用求带参数得Open方法打开连接
EndWith
MsgBox("连接成功")
mand1、Enabled= False'连接按钮不可用
mand2、Enabled=True'显示数据可用
EndSub
PrivateSub mand2_Click()
SetCmd、ActiveConnection = Conn '设置mand对象得ActiveConnection为某个打开得连接
SqlString="Select 课程名称,教师姓名,上课教室,班级编号,上课时间from排课表Where 上课教室 like '"&Text1、Text&"' " '形成查询字符串1
Cmd、mandText=SqlString'设置mand对象执行得命令字符串
Cmd、mandType = adCmdText '设置命令类型,表示mandText中为一命令文本 ,童P188
Set RS1=Cmd、Execute'执行命令得到一个结果记录集
Call ShowData(RS1,MSFlexGrid1)'调用过程显示记录集中得数据
mand1、Visible =True
EndSub
Private Sub ShowData(Rs As ADODB、Recordset,Dgrid AsMSFlexGrid)
'该过程用来在Dgrid网格中显示记录集RS中得内容
DimRowNumAsInteger
RowNum=1 '代表MsFlexGrid控件得行数
Dgrid、Rows=RowNum '设置MsFlexGrid控件得行数
Dgrid、Cols=Rs、Fields、Count '设置MsFlexGrid控件得列数
For j= 0 ToRs、Fields、Count -1 '遍列所有列
Dgrid、TextMatrix(0,j) =Rs、Fields(j)、Name'把列名显示在设置MsFlexGrid控件得首行
Next j
DoWhile NotRs、EOF'如果不就是记录集得结尾
RowNum= RowNum+1'行数加1
Dgrid、Rows =RowNum '设置MsFlexGrid控件得行数
Forj =0ToRs、Fields、Count-1'遍列所有列
IfNotIsNull(Rs、Fields(j)、Value) Then'如果列中得数据不为空,切记不能用如if Var1=Null来判断变量Var1得值就是否为Null
Dgrid、TextMatrix(RowNum-1,j) =Rs、Fields(j)、Value'把列得数据显示在MsFlexGrid得相应网格中
EndIf
Nextj
Rs、MoveNext '记录指针下移
Loop
mand2、Enabled=False
EndSub
PrivateSubmand3_Click()
Form14、Hide
Form3、Show
End Sub
PrivateSub mand4_Click()
RS1、Close '关闭记录集
Conn、Close '关闭连接
Text1、Text =""
mand1、Enabled = True'连接按钮不可用
mand2、Enabled=True '显示数据可用
EndSub
PrivateSubmand5_Click()
DataReport1、Show vbModal,Me
EndSub
3、查瞧初始化窗口及代码
Option Explicit
DimSQLAsString
DimConnAsNewADODB、Connection '连接变量
DimSqlStringAsString '查询字符串
DimConnstringAsString
DimmsgAsString'连接字符串
PrivateSubCmdSave_Click()
'进行初始化操作
DimCounnter AsInteger
Connstring="Driver={SQL Server};Server=PC2012110412ewr、;Database=GXPK;"_
&"uid=sa;pwd=t123"'SQLServer普通安全模式建立到Pubs数据库得连接得连接字符串
'设置连接字符串
WithConn
、ConnectionString=Connstring'给ConnectionString属性赋值
、ConnectionTimeout =10
、Open'给连接得ConnectionString属性赋值,然后使用求带参数得Open方法打开连接
EndWith
MsgBox("连接成功")
ProgressBar1、Visible=True
ProgressBar1、Max =200
ProgressBar1、Value =ProgressBar1、Min
msg= MsgBox("您确实要初始化这些数据吗?
", vbYesNo)
If msg=vbNo ThenExitSub
For Counnter=ProgressBar1、MinToProgressBar1、Max
ProgressBar1、Value=Counnter
If Check1、Value=1Then '如果班级信息表被选中
'删除全部提醒信息数据
SQL= "deletefrom 班级信息表"
Conn、Execute SQL
End If
If Check2、Value =1Then '如果课程信息表被选中
'删除全部通讯日志数据
SQL ="deletefrom 课程信息表"
Conn、ExecuteSQL
EndIf
If Check3、Value=1Then '如果班级课程信息表被选中
'删除全部群组信息数据
SQL = "deletefrom任课表"
Conn、ExecuteSQL
EndIf
IfCheck4、Value=1Then '如果教师信息表被选中
'删除全部联系人信息数据
SQL="deletefrom 教师信息表"
Conn、Execute SQL
End If
IfCheck6、Value= 1Then '如果排课信息表被选中
'删除全部联系人信息数据
SQL ="deletefrom排课表"
Conn、ExecuteSQL
EndIf
NextCounnter
ProgressBar1、Visible=False
ProgressBar1、Value =ProgressBar1、Min
EndSub
PrivateSub CmdExit_Click()
'退出操作
Form15、Hide
Form3、Show
EndSub
PrivateSubForm_Unload(Cancel As Integer)
'退出操作
Form15、Hide
Form3、Show
EndSub
4、查瞧自动排课窗口及代码
DimConnAsNew ADODB、Connection'连接变量
DimSqlStringAsString '查询字符串
DimConnstringAs String
DimdlaytimeAs Integer
PrivateSub mand2_Click()
DimSQLAsString
DimscAsADODB、Recordset
Setsc=New ADODB、Recordset
SQL="deletel排课表"
End Sub
Private Submand3_Click()
Form9、Hide
Form3、Show
End Sub
PrivateSubForm_Load()
constr="Driver={SQLServer};Server=PC2012110412ewr、;Database=GXPK;"_
& "uid=sa;pwd=t123"'SQLServer普通安全模式建立到Pubs数据库得连接得连接字符串 '定义数据库连接
WithConn
、ConnectionString=constr'给ConnectionString属性赋值
、ConnectionTimeout=10
、Open'给连接得ConnectionString属性赋值,然后使用求带参数得Open方法打开连接
EndWith
MsgBox("连接成功")
ProgressBar1、Visible= True
ProgressBar1、Max= 200
ProgressBar1、Value=ProgressBar1、Min
EndSub
PrivateSubmand1_Click() '开始
DimSQL,sqll,sqlllAsString
DimrtAsNewADODB、Recordset
DimrmAs NewADODB、Recordset
DimrnAsNewADODB、Recordset
Dim rpAsNewADODB、Recordset
DimrqAs NewADODB、Recordset
Dim iAsInteger
SetRs= NewADODB、Recordset
SQL="select *from任课表 "
Set Rs= Conn、Execute(SQL)
ProgressBar1、Max= 100
DoWhile ProgressBar1、Value<ProgressBar1、Max
Do UntilRs、EOF=True
i=Rs("每周节数")
DoUntili =0
sqll ="select* from时间表"
Setrt=Conn、Execute(sqll)
DoUntilrt、EOF=True
Setrp=NewADODB、Recordset
coom ="select* from排课表where [班级编号]='"+Rs("班级编号") +"'and[上课时间]='" +rt("上课时间") +"'"
Setrp= Conn、Execute(coom)
cool="select*from排课表where[上课时间]='"+rt("上课时间") + "'and[教师姓名]='"+Rs("教师姓名")+"'"
Setrq=Conn、Execute(cool)
Ifrp、EOF= TrueAndrq、EOF=TrueThen
sqlll="select *from教室信息表"
Setrm =Conn、Execute(sqlll