智能排课系统vb代码

合集下载

教务排课管理系统设计(VB课程设计)

教务排课管理系统设计(VB课程设计)

类型:【02课程设计】作品名称:教务排课管理系统设计作品关键词:排课管理系统、Microsoft Visual Basic、Microsoft Access第一章系统需求分析这个阶段的任务不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。

需求分析也是软件定义时期的第一个阶段,虽然在可行性研究阶段可以粗略了解了用户的需求,甚至还提出了可行的方案,但是可行性研究的基本目的是用较小的成本在较短的时间内确定是否存在可行的解法,因此许多细节被忽略了。

然而在最终的系统中却不能遗漏任何一个微小的细节,所以可行性研究并不能代替需求分析,它实际上并没有准确地回答“系统必须做什么?”这个问题。

为此,必须对系统进行需求分析。

1.1 系统编写目的排课是学校教学管理中十分重要、又相当复杂的管理工作之一,是为学校所设置的课程安排时间和地点,使整个教学能够有计划有秩序的进行。

课表编排是一个涉及多种因素的组合规划问题,它要保证在课程安排中教师、学生、教室不能产生冲突(所谓冲突,就是将需上不同课程的两个或多个班级安排在了同一时间、同一教室、或为同一教师在同一时间段安排了多门课程等情况),并且要满足教师的要求和教室资源的要求等约束条件。

伴随着我国教育体制改革的深入,学生人数的不断上升,课程设置不断向深度和广度发展,手工排课的缺点越来越突出。

由于计算机具有运算速度快,处理能力强等特点,很自然地进入到这一应用领域中。

用计算机进行排课能够快速地得到满足约束条件的可行性结果,具有排课时间短、人力省和质量高的优点,不但能够使教务人员从繁杂的排课任务中解脱出来,而且对于推动教学的发展也起到非常重要的作用。

排课系统的主要汇总各系或各授课部门的课程申请,然后根据教学计划或教学环节制定全校各个班级的课程表,各个教师的授课表。

由于学校班级数、课程门数比较多,每门课程又涉及很多信息,如果用手工进行排课,不可避免地出现教师资源冲突或教室资源冲突的情况。

VB+教学辅助系统3

VB+教学辅助系统3

VB+教学辅助系统(一)(6)VB+教学辅助系统(一)Private Sub MenuAddClick() Frame5.Visible = True:Frame6.Visible = True: TreeView1.Visible = False Call SelFldtoCbo("code", "小类别", BigStyle, Cbostyle)Label4.Caption = "(添加)" TxTTitle.Text = "" RTB1.Text = "" On Error GoTo ERR: If ExistRecord("code", "标题", TreeView1.Nodes.Item(TreeView1.SelectedItem.Index)) = True Then Cbostyle.Text =TreeView1.Nodes.Item(TreeView1.SelectedItem.Parent.Index) Else If ExistRecord("code", "小类别",TreeView1.Nodes.Item(TreeView1.SelectedItem.Index)) = True Then Cbostyle.Text =TreeView1.Nodes.Item(TreeView1.SelectedItem.Index) End If End If ERR: RTB1.Locked = False RTB1.BackColor = RGB(255, 255, 255) AddCode = True Toolbar1.Buttons(7).Image = 16: Toolbar1.Buttons(8).Image = 17 Toolbar1.Buttons(7).Caption = "粘贴": Toolbar1.Buttons(8).Caption = "去除"Toolbar1.Buttons(7).Tag = "ToolPlaste":Toolbar1.Buttons(8).Tag = "ToolClear" MenuPlaste.Enabled = True: MenuClear.Enabled = True End SubPrivate Sub MenuAPIClick() Label1.Caption = "API函数" BigStyle = "API函数" For i = 1 To Toolbar1.Buttons.Count Toolbar1.Buttons(i).MixedState = False Next iToolbar1.Buttons(4).MixedState = True CallShowTree(BigStyle) End SubPrivate Sub MenuAuthorClick() ShellExecute Me.hwnd, "open", "", App.Path, 1, 0 End SubPrivate Sub MenuBasicClick() Label1.Caption = "VB根底" BigStyle = "VB根底" For i = 1 To Toolbar1.Buttons.Count Toolbar1.Buttons(i).MixedState = False Next iToolbar1.Buttons(2).MixedState = True CallShowTree(BigStyle) End SubPrivate Sub MenuBigClick() RTB1.Font.Size = RTB1.Font.Size + 1 SaveSetting App.EXEName, "Font", "FontSize",RTB1.Font.Size End SubPrivate Sub MenuConsultClick() Label1.Caption = "语言参考" BigStyle = "语言参考" For i = 1 To Toolbar1.Buttons.Count &n。

基于vb的自动排课系统(DOC)

基于vb的自动排课系统(DOC)

摘要排课问题是所有教育行业都要面对的问题,尤其针对高校纷繁复杂的课程和专业,一直没有很好解决方法。

因为在有关课程表的问题上有许多的限制条件必须考虑,还有大量的数据空间被挖掘,并包含很多信息数据的管理,即便你的输入数据量并不是实际上的大批量数据。

以前的排课管理和数据处理都是手工操作,工作量很大,出错率较高,而且出错后不易更改,促使管理工作混乱而又复杂。

排课系统的实现可以在短时间内解决高校排课的问题,对教师、课程进行有效高效的安排。

本文在相关理论的指导下,在分析以往一些排课软件的基础上,提出一种排课系统的设计方法,对一些具体的问题给出相应解决方案。

希望对于相关部门有所帮助。

此系统主要被分为三个部分:界面的设计、排课算法的设计、以及报表的自动生成。

纵观全局,我们确定用Visual Basic 语言作为程序设计语言以及运用Microsoft SQL Sever 2000数据库作为后台的数据库支持。

关键词排课;排课系统;设计;数据库AbstractCourse arranging Problem is a problem which working in the development of education is facing. Especially, there is no a good solution for this matter of the college. Because the problems in the curriculum there are many restrictions have to consider,there are a lot of data space to be excavated,still contains a lot of information data management,even if your input data is not high-volume real sense.Arranging the previous management and data processing are manual,workload capacity,error rate,but not easy to change mistakes,usually make the management of chaos and complex.Course Scheduling System is to achieve in a short time to solve Scheduling problems.Give the teachers and curriculum an Effective and efficient arrangements.This essay, with the correlative theory’s guidance, on the basis of analyzing some courses-arraying software, proposes a design method of commonly used courses arraying information system in college, and solves some of the certain problems. Hoping it is useful for the relative department. The system consist of three parts: the interface design, the algorithm of Course Timetable system, and printing the tables. On the whole, we decided to use VB computer language to design and Microsoft SQL Sever 2000 Data Base to support.Key Wordscourses arranging; courses arrangement management system; design; DataBase摘要 (1)Abstract (1)第一章绪论 (2)1.1 研究背景 (2)1.2 研究的目的和意义 (2)第二章需求分析 (3)2.1 对现有排课系统的分析 (3)2.2 排课要求 (4)2.4 系统的性能要求 (4)2.5系统的可行性分析 (5)2.5.1经济可行性分析 (5)2.5.2操作的可行性分析 (5)2.5.3技术可行性分析 (5)2.5.4成本效益分析 (5)2.6 系统开发工具运行环境的选择 (6)第三章系统总体设计 (8)3.1 总体功能设计 (8)3.1.1系统功能模块设计 (8)3.2 数据库设计 (10)第四章系统的实现 (12)4.1 设计数据库的连接 (12)4.2 主界面设计 (14)4.2.1界面布局 (14)4.2.2运行效果图 (14)4.2.3代码实现 (14)4.3 各菜单项的实现 (17)4.3.1 条件设置菜单 (17)4.3.2课表管理模块菜单 (27)4.3.3系统管理菜单 (40)第五章总结 (45)第一章绪论1.1 研究背景随着信息技术的飞速发展,各个行业的信息化势在必行。

智能排课系统(参考文档)

智能排课系统(参考文档)

智能排课系统设计与实现摘要排课,是给学校各专业的教学计划中设置的课程安排合适的时间和地点,也就是给每个班的课程安排时间和地点。

排课工作在教学管理中很重要也很繁琐,计算机智能排课系统,可以降低排课人员的工作量,减少排课中的人为因素[1-2]。

但排课问题属于NP问题,即无法直接得到答案,只能通过猜测获取可能结果。

通常NP问题虽无答案,却有算法,算法不能直接告诉答案,但可以用来判断可能的结果是否正确可行。

因此,要做好排课工作,提高排课效率,实现智能排课是必不可少的。

本文在查阅大量相关文献的基础上,对高校的排课问题进行了分析,设计和实现了该功能,此系统主要被分为三个部分:界面的设计、排课算法的设计、以及报表的自动生成。

本系统是采用Microsoft Visual Studio 2005作为前台开发工具,SQL Server2005作为后台数据库平台的管理系统。

关键词:智能排课、贪心、分治、Visual Studio 2005、SQL Server 2005。

目录摘要 (I)ABSTRACT ......................................... 错误!未定义书签。

1绪论. (4)1.1系统开发背景 (4)1.2系统开发环境及方法 (4)1.2.1.开发环境 (4)1.2.2开发方法 (6)2 可行性分析 (7)2.1技术可行性 (7)2.2经济可行性 (7)2.3操作可行性 (8)2.4法律可行性 (8)3 系统需求分析 (9)3.1系统功能需求 (9)3.2系统非功能需求 (9)3.2.1排课中的基本原则 (9)3.2.2排课的基本要求 (10)4 总体设计 (11)4.1系统总体构架 (11)4.2系统功能结构 (11)4.3排课算法 (12)4.3.1目前常用算法 (12)4.3.2 排课问题描述 (13)4.3.3 排课问题的数学表示 (14)4.3.4排课问题的优先级问题 (14)4.3.5算法思想 (15)4.3.6 算法分析 (16)5 数据库设计 (17)5.1系统数据表 (17)5.2UML建模图 (17)5.3数据字典 (18)5.4数据库关系图 (21)6 详细设计与实现 (22)6.1数据库访问模块 (22)6.2条件设置模块 (25)6.3教学计划模块 (28)6.4排课模块 (29)6.5课程表查询模块 (47)结束语........................................... 错误!未定义书签。

VB3005智能排课系统

VB3005智能排课系统

摘要排课问题是所有教育行业都要面对的问题,尤其针对高校纷繁复杂的课程和专业,一直没有很好解决方法。

但这又是每个学校在每个学期都会碰到的必修课。

本文在相关理论的指导下,在分析以往一些排课软件的基础上,提出一种排课系统的设计方法,对一些具体的问题给出相应解决方案。

希望对于相关部门有所帮助。

此系统主要被分为三个部分:界面的设计、排课算法的设计、以及报表的自动生成。

纵观全局,我们确定用Visual Basic 语言作为程序设计语言以及运用SQL Server 2000 数据库作为后台的数据库支持。

关键词:排课、排课系统、设计、高校目录摘要 (1)ABSTRACT .......................................... 错误!未定义书签。

第一章引言....................................... 错误!未定义书签。

第二章可行性研究................................. 错误!未定义书签。

2.1系统目标及任务.............................. 错误!未定义书签。

2.2开发工具的选择和介绍....................... 错误!未定义书签。

2.3对现有的排课系统的分析..................... 错误!未定义书签。

2.4系统的逻辑模型.............................. 错误!未定义书签。

2.4.1 系统结构图.............................. 错误!未定义书签。

2.4.2 系统流程图.............................. 错误!未定义书签。

2.4.3数据字典 ................................ 错误!未定义书签。

2.5系统的可行性................................ 错误!未定义书签。

VB编写的课堂随机点名小程序代码

VB编写的课堂随机点名小程序代码

随机点名系统。

综合网上各类小程序,自己修改定制了一款新的小程序。

学生名单.txt 放在同一个目录中。

使用截图如下Private Declare Sub SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)'定义常量Const HWND_TOPMOST = -1 'On TopConst HWND_NOTOPMOST = -2 'No TopConst SWP_NOACTIV A TE = &H10 'Const SWP_SHOWWINDOW = &H40 ''Dim TopOn As IntegerDim ss, mm, nnDim num(1 To 300) As IntegerDim j, k As IntegerDim A(500) As String, r As IntegerDim filename As StringPrivate Sub Command1_Click()Dim b As StringDim t, i As Integerfilename = App.Path & "\" & "学生名单.txt" Open filename For Input As #1'产生记录总数以内的随机数xi = 1While Not EOF(1)Line Input #1, A(i)i = i + 1Wendc = iClose #1Start:Randomizet = Int(c * Rnd + 1)For j = 1 To cIf t = num(j) ThenGoTo StartEnd IfNextLabel1.Caption = A(t)k = k + 1num(k) = tIf k = c ThenMsgBox "所有人员均已点过!", vbSystemModal Command1.Enabled = FalseCommand3.Enabled = TrueEnd IfEnd SubPrivate Sub Command2_Click()Unload Form1End SubPrivate Sub Command3_Click()j = 0k = 0For i = 1 To 300num(i) = 0NextCommand3.Enabled = FalseCommand1.Enabled = TrueLabel1.Caption = "Name"End SubPrivate Sub Command4_Click()Timer1.Enabled = TrueCommand4.Enabled = FalseEnd SubPrivate Sub Data1_Validate(Action As Integer, Save As Integer) End SubPrivate Sub Form_load()Form1.Height = 500Form1.Width = 8550Command3.Enabled = FalseTimer1.Enabled = Falsemm = 45: ss = 0Timer1.Interval = 1000End SubPrivate Sub Timer1_Timer()Dim M As IntegerSetWindowPos Me.hwnd, HWND_TOPMOST, Me.Left / 15, _Me.Top / 15, Me.Width / 15, _Me.Height / 15, SWP_NOACTIV ATE Or SWP_SHOWWINDOW Line1:If ss < 10 Thens = "0" & ssElses = ssEnd IfIf mm < 10 Thenmmm = "0" & mmElsemmm = mmEnd Ift = mmm & ":" & sLabel2.Caption = tss = ss - 1If nn = 3 Thenss = 88End IfIf mm = 0 And ss = -1 And nn = 0 ThenMsgBox "休息时间已到,五分钟后继续", vbSystemModalnn = 1mm = 5: ss = 0GoTo Line1End IfIf mm = 0 And ss = -1 And nn = 1 ThenMsgBox "继续上课", vbSystemModalnn = 2mm = 45: ss = 0GoTo Line1End IfIf mm = 0 And ss = -1 And nn = 2 ThenMsgBox "放学咯!", vbSystemModalCommand1.Enabled = Falsenn = 3mm = 88: ss = 88End IfIf ss = -1 And mm > 0 Then mm = mm - 1: ss = 59If mm = 0 And hh > 0 Then hh = hh - 1: mm = 59 End Sub。

vb排课系统(geichu)

vb排课系统(geichu)
ExecuteSOL(ByVal SQL As String ,ByRef msg As String)函数,用来执行SQL语句。
SelectSOL(ByVal SQL As String ,ByRef msg As String)As ADODB.
Recordset函数,返回Recordset,用来执行查询语句。
MaxLength
6
运行窗体时将触发Lode事件。在Lode事件中,首先需要初始化教师
ComboBox然后调用LodeData过程初始化教师listView,最后调用ShowDate过程显示数据。当用户单击listView控件中的教师图标时,将触发listView_Click事件,当用户单击[保存]按钮时,与班级课程信息窗体中运行方式一样,其代码参考附录。
其代码参考附录。
3.1.2.3“教师设置”模块的实现
教师设置模块主要负责维护教师的基本信息和授课信息,进行增加、修改、删除和查询功能,为了实现这些功能信息,需要如下控件:
(1)1个ListView,控件,显示教师图标。
(2)1个ImageList控件,装载图片。
(3)4个TextBox控件。
(4)1个ComboBox控件,显示课程名称。
(2)1个ImageList控件,装载图片。
(3)4个TextBox控件。
(4)6个CommandButton控件:5个用来维护信息的按钮,分别是[添加]、[修改]、[删除]、[保存]和[取消]按钮,1个用来退出系统的[退出]按钮。
其主要的控件属性如表10所示。
表10“班级设置”窗体主要控件属性表
控件
每周课程节数
课程分布
Char(14)
Not Null
星期

【免费下载】VB学生管理系统主要代码

【免费下载】VB学生管理系统主要代码

Private Sub Cmd1Import_Click() rst0.MoveFirst For i = 1 To rst0.RecordCount
rst1.AddNew rst1.Fields("应聘人编号") = rst0.Fields("应聘人编号") rst0.MoveNext rst1.MoveNext Next i ' Cmd1Import.Enabled = False ' Cmd1OK.Enabled = True ' Cmd1Exit.Enabled = True
rst2.AddNew rst2.Fields("应聘人编号") = rst1.Fields("应聘人编号") rst2.Fields("初选评分") = rst1.Fields("综合评分") rst1.MoveNext Next i st2.Update Cmd2Import.Enabled = False End Sub
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Vb核心代码设计一:输入界面与代码(以班级表为例)DimConnAsNewADODB.Connection'连接变量DimSqlStringAsString'查询字符串DimConnstringAsString'连接字符串DimRS1AsNewADODB.Recordset'记录集变量Dimbm'定义一个变量用来存放添加记录时原来记录的位置DimtjAsBooleanPrivateSubCommand10_Click()Form4.HideForm3.ShowEndSubPrivateSubCommand1_Click()'移到首记录RS1.MoveFirstCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=TrueCommand4.Enabled=TrueCallDispValue'显示当前记录的值EndSubPrivateSubCommand2_Click()'前移RS1.MovePreviousIfRS1.BOFThenRS1.MoveFirstCommand1.Enabled=FalseCommand2.Enabled=FalseEndIfCommand3.Enabled=TrueCommand4.Enabled=TrueCallDispValue'显示当前记录的值EndSubPrivateSubCommand3_Click()'后移RS1.MoveNextIfRS1.EOFThenRS1.MoveLastCommand3.Enabled=FalseCommand4.Enabled=FalseEndIfCommand1.Enabled=TrueCommand2.Enabled=TrueCallDispValue'显示当前记录的值EndSubPrivateSubCommand4_Click()'移到末记录RS1.MoveLastCommand3.Enabled=FalseCommand4.Enabled=FalseCommand1.Enabled=TrueCommand2.Enabled=TrueCallDispValue'显示当前记录的值EndSubPrivateSubCommand5_Click()'删除记录If(MsgBox("真的要删除该记录吗?",vbQuestion+vbYesNo,"删除提示")=vbYes)Then RS1.Delete'删除RS1.MoveNextIfRS1.EOFThen'如果删除的是末记录RS1.MoveLastEndIfEndIfCallDispValue'显示当前记录的值EndSubPrivateSubCommand6_Click()'添加记录bm=RS1.Bookmark'用书签记下当前记录位置RS1.AddNew'调用AddNew方法增加新记录CallEditStatus'置按钮和文本框状态CallEmptyText'清空文本框tj=True'是添加新记录EndSubPrivateSubCommand7_Click()'修改记录CallEditStatus'置按钮和文本框状态tj=False'不是添加记录,是修改记录EndSubPrivateSubCommand8_Click()'确定操作CallSetValue'给各字段赋值RS1.Update'调用Update方法保存CallOkStatus'置按钮和文本框状态MsgBox("保存成功")'给出保存成功提示EndSubPrivateSubCommand9_Click()'取消操作If(MsgBox("真的要取消修改吗?",vbQuestion+vbYesNo))=vbYesThenRS1.CancelUpdateIftjThen'如果是增加新记录RS1.Bookmark=bm'把记录指针移动到原来的位置EndIfCallDispValue'显示当前记录的值CallOkStatus'置按钮和文本框状态EndIfEndSubPrivateSubForm_Load()Connstring="Driver={SQLServer};Server=PC2012110412ewr.;Database=GXPK;"_ &"uid=sa;pwd=t123"'SQLServer普通安全模式建立到Pubs数据库的连接的连接字符串'设置连接字符串WithConn.ConnectionString=Connstring'给ConnectionString属性赋值.ConnectionTimeout=10.Open'给连接的ConnectionString属性赋值,然后使用求带参数的Open方法打开连接EndWithMsgBox("连接成功")RS1.CursorType=adOpenDynamicRS1.CursorLocation=adUseClient'游标服务的位置、默认值adUseServer。

游标用于:控制记录定位、控制其他用户对数据库所作的更改的可视性、控制数据可更新性RS1.LockType=adLockOptimisticRS1.Open"班级信息表",Conn,3,3IfRS1.EOFAndRS1.BOFThen'如果表为空MsgBox"表为空,请添加记录"ElseCallDispValue'显示当前记录的值EndIfCallTextDisable'使文本框不可用Command8.Enabled=FalseCommand9.Enabled=FalseEndSubPrivateSubDispValue()Text1.Text=RS1.Fields("班级编号")IfIsNull(Trim(RS1.Fields("班级名称")))Then'解决课程名字段值为空移指针出错(无效使用NULL)的问题,其他字段类推。

Text2.Text=""ElseText2.Text=RS1.Fields("班级名称")EndIfText5.Text=RS1.Fields("所属系")Text7.Text=RS1.Fields("学生人数")EndSubPrivateSubSetValue()RS1.Fields("班级编号")=Text1.TextRS1.Fields("班级名称")=Text2.TextRS1.Fields("所属系称")=Text5.TextRS1.Fields("学生人数")=Text7.TextEndSubPrivateSubTextEnable()'使所有的文本框可用Text1.Enabled=TrueText2.Enabled=TrueText5.Enabled=TrueText7.Enabled=TrueEndSubPrivateSubTextDisable()'使所有的文本框不可用Text1.Enabled=FalseText2.Enabled=FalseText5.Enabled=FalseText7.Enabled=FalseEndSubPrivateSubEditStatus()'设置在编辑或添加记录时的各控件状态Command1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseCommand4.Enabled=FalseCommand5.Enabled=FalseCommand6.Enabled=FalseCommand7.Enabled=FalseCommand8.Enabled=TrueCommand9.Enabled=TrueCallTextEnableEndSubPrivateSubEmptyText()'清空文本框Text1.Text=""Text2.Text=""Text5.Text=""Text7.Text=""EndSubPrivateSubOkStatus()'设置不在编辑或添加记录时的各控件状态Command1.Enabled=TrueCommand2.Enabled=TrueCommand3.Enabled=TrueCommand4.Enabled=TrueCommand5.Enabled=TrueCommand6.Enabled=TrueCommand7.Enabled=TrueCommand8.Enabled=FalseCommand9.Enabled=FalseCallTextDisableEndSub2、查看课表窗口及代码(以教室课表为例)DimConnAsNewADODB.Connection'连接变量DimSqlStringAsString'查询字符串DimConnstringAsString'连接字符串DimRS1AsNewADODB.Recordset'记录集变量mandPrivateSubCommand1_Click()Connstring="Driver={SQLServer};Server=PC2012110412ewr.;Database=GXPK;"_ &"uid=sa;pwd=t123"'SQLServer普通安全模式建立到Pubs数据库的连接的连接字符串'设置连接字符串WithConn.ConnectionString=Connstring'给ConnectionString属性赋值.ConnectionTimeout=10.Open'给连接的ConnectionString属性赋值,然后使用求带参数的Open方法打开连接EndWithMsgBox("连接成功")Command1.Enabled=False'连接按钮不可用Command2.Enabled=True'显示数据可用EndSubPrivateSubCommand2_Click()SetCmd.ActiveConnection=Conn'设置Command对象的ActiveConnection为某个打开的连接SqlString="Select课程名称,教师姓名,上课教室,班级编号,上课时间from排课表Where上课教室like'"&Text1.Text&"'"'形成查询字符串1mandText=SqlString'设置Command对象执行的命令字符串mandType=adCmdText'设置命令类型,表示CommandText中为一命令文本,童P188SetRS1=Cmd.Execute'执行命令得到一个结果记录集CallShowData(RS1,MSFlexGrid1)'调用过程显示记录集中的数据Command1.Visible=TrueEndSubPrivateSubShowData(RsAsADODB.Recordset,DgridAsMSFlexGrid)'该过程用来在Dgrid网格中显示记录集RS中的内容DimRowNumAsIntegerRowNum=1'代表MsFlexGrid控件的行数Dgrid.Rows=RowNum'设置MsFlexGrid控件的行数Dgrid.Cols=Rs.Fields.Count'设置MsFlexGrid控件的列数Forj=0ToRs.Fields.Count-1'遍列所有列Dgrid.TextMatrix(0,j)=Rs.Fields(j).Name'把列名显示在设置MsFlexGrid控件的首行NextjDoWhileNotRs.EOF'如果不是记录集的结尾RowNum=RowNum+1'行数加1Dgrid.Rows=RowNum'设置MsFlexGrid控件的行数Forj=0ToRs.Fields.Count-1'遍列所有列IfNotIsNull(Rs.Fields(j).Value)Then'如果列中的数据不为空,切记不能用如if Var1=Null来判断变量Var1的值是否为NullDgrid.TextMatrix(RowNum-1,j)=Rs.Fields(j).Value'把列的数据显示在MsFlexGrid的相应网格中EndIfNextjRs.MoveNext'记录指针下移LoopCommand2.Enabled=FalseEndSubPrivateSubCommand3_Click()Form14.HideForm3.ShowEndSubPrivateSubCommand4_Click()RS1.Close'关闭记录集Conn.Close'关闭连接Text1.Text=""Command1.Enabled=True'连接按钮不可用Command2.Enabled=True'显示数据可用EndSubPrivateSubCommand5_Click()DataReport1.ShowvbModal,MeEndSub3、查看初始化窗口及代码OptionExplicitDimSQLAsStringDimConnAsNewADODB.Connection'连接变量DimSqlStringAsString'查询字符串DimConnstringAsStringDimmsgAsString'连接字符串PrivateSubCmdSave_Click()'进行初始化操作DimCounnterAsIntegerConnstring="Driver={SQLServer};Server=PC2012110412ewr.;Database=GXPK;"_&"uid=sa;pwd=t123"'SQLServer普通安全模式建立到Pubs数据库的连接的连接字符串'设置连接字符串WithConn.ConnectionString=Connstring'给ConnectionString属性赋值.ConnectionTimeout=10.Open'给连接的ConnectionString属性赋值,然后使用求带参数的Open 方法打开连接EndWithMsgBox("连接成功")ProgressBar1.Visible=TrueProgressBar1.Max=200ProgressBar1.Value=ProgressBar1.Minmsg=MsgBox("您确实要初始化这些数据吗?",vbYesNo)Ifmsg=vbNoThenExitSubForCounnter=ProgressBar1.MinToProgressBar1.MaxProgressBar1.Value=CounnterIfCheck1.Value=1Then'如果班级信息表被选中'删除全部提醒信息数据SQL="deletefrom班级信息表"Conn.ExecuteSQLEndIfIfCheck2.Value=1Then'如果课程信息表被选中'删除全部通讯日志数据SQL="deletefrom课程信息表"Conn.ExecuteSQLEndIfIfCheck3.Value=1Then'如果班级课程信息表被选中'删除全部群组信息数据SQL="deletefrom任课表"Conn.ExecuteSQLEndIfIfCheck4.Value=1Then'如果教师信息表被选中'删除全部联系人信息数据SQL="deletefrom教师信息表"Conn.ExecuteSQLEndIfIfCheck6.Value=1Then'如果排课信息表被选中'删除全部联系人信息数据SQL="deletefrom排课表"Conn.ExecuteSQLEndIfNextCounnterProgressBar1.Visible=FalseProgressBar1.Value=ProgressBar1.MinEndSubPrivateSubCmdExit_Click()'退出操作Form15.HideForm3.ShowEndSubPrivateSubForm_Unload(CancelAsInteger)'退出操作Form15.HideForm3.ShowEndSub4、查看自动排课窗口及代码DimConnAsNewADODB.Connection'连接变量DimSqlStringAsString'查询字符串DimConnstringAsStringDimdlaytimeAsIntegerPrivateSubCommand2_Click()DimSQLAsStringDimscAsADODB.RecordsetSetsc=NewADODB.RecordsetSQL="deletel排课表"EndSubPrivateSubCommand3_Click()Form9.HideForm3.ShowEndSubPrivateSubForm_Load()constr="Driver={SQLServer};Server=PC2012110412ewr.;Database=GXPK;"_ &"uid=sa;pwd=t123"'SQLServer普通安全模式建立到Pubs数据库的连接的连接字符串'定义数据库连接WithConn.ConnectionString=constr'给ConnectionString属性赋值.ConnectionTimeout=10.Open'给连接的ConnectionString属性赋值,然后使用求带参数的Open方法打开连接EndWithMsgBox("连接成功")ProgressBar1.Visible=TrueProgressBar1.Max=200ProgressBar1.Value=ProgressBar1.MinEndSubPrivateSubCommand1_Click()'开始DimSQL,sqll,sqlllAsStringDimrtAsNewADODB.RecordsetDimrmAsNewADODB.RecordsetDimrnAsNewADODB.RecordsetDimrpAsNewADODB.RecordsetDimrqAsNewADODB.RecordsetDimiAsIntegerSetRs=NewADODB.RecordsetSQL="select*from任课表"SetRs=Conn.Execute(SQL)ProgressBar1.Max=100DoWhileProgressBar1.Value<ProgressBar1.MaxDoUntilRs.EOF=Truei=Rs("每周节数")DoUntili=0sqll="select*from时间表"Setrt=Conn.Execute(sqll)DoUntilrt.EOF=TrueSetrp=NewADODB.Recordsetcoom="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=TrueThensqlll="select*from教室信息表"Setrm=Conn.Execute(sqlll)DoUntilrm.EOF=Truecoon="select*from排课表where[上课时间]='"+rt("上课时间")+"'and[上课教室]='"+rm("教室名称")+"'"Setrn=Conn.Execute(coon)Ifrn.EOF=TrueThenSQL="insertinto排课表([课程名称],[教师姓名],[上课教室],[班级编号],[上课时间])values('"+Rs("课程名称")+"','"+Rs("教师姓名")+"','"+rm("教室名称")+"','"+ Rs("班级编号")+"','"+rt("上课时间")+"')"Setrq=Conn.Execute(SQL)ExitDoElserm.MoveNextEndIfLoopExitDoElsert.MoveNextEndIfLoopi=i-1LoopRs.MoveNextLoopProgressBar1.Value=ProgressBar1.Value+1DoEventsLoopMsgBox"自动排课已完成",vbInformation,"提示"EndSubPrivateSubTimer1_Timer()Ifdlaytime>=100Then'Timer1.Enabled=FalseLoadfrmLoginfrmLogin.ShowElsedlaytime=dlaytime+1P1.Value=dlaytimeEndIfEndSub5、查看手动调课窗口及代码DimConnAsNewADODB.Connection'连接变量DimSqlStringAsString'查询字符串DimConnstringAsStringPrivateSubCommand2_Click()Form11.HideForm3.ShowEndSubPrivateSubCommand5_Click()DimConnAsNewADODB.Connection'连接变量DimSqlStringAsString'查询字符串DimConnstringAsString'连接字符串DimRS1AsNewADODB.Recordset'记录集变量mandConnstring="Driver={SQLServer};Server=PC2012110412ewr.;Database=GXPK;"_ &"uid=sa;pwd=t123"'SQLServer普通安全模式建立到Pubs数据库的连接的连接字符串'设置连接字符串WithConn.ConnectionString=Connstring'给ConnectionString属性赋值.ConnectionTimeout=10.Open'给连接的ConnectionString属性赋值,然后使用求带参数的Open方法打开连接EndWithSetCmd.ActiveConnection=Conn'设置Command对象的ActiveConnection为某个打开SqlString="Select课程名称,教师姓名,上课教室,班级编号,上课时间from排课表"'形成查询字符串1mandText=SqlString'设置Command对象执行的命令字符串mandType=adCmdText'设置命令类型,表示CommandText中为一命令文本,童P188SetRS1=Cmd.Execute'执行命令得到一个结果记录集CallShowData(RS1,MSFlexGrid1)'调用过程显示记录集中的数据EndSubPrivateSubForm_Load()constr="Driver={SQLServer};Server=PC2012110412ewr.;Database=GXPK;"_ &"uid=sa;pwd=t123"'SQLServer普通安全模式建立到Pubs数据库的连接的连接字符串'定义数据库连接WithConn.ConnectionString=constr'给ConnectionString属性赋值.ConnectionTimeout=10.Open'给连接的ConnectionString属性赋值,然后使用求带参数的Open方法打开连接EndWithMsgBox("连接成功")EndSubPrivateSubCommand1_Click()'调整教室DimrtAsNewADODB.RecordsetIf(Text1.Text=""OrText2.Text=""OrText3.Text=""OrText4.Text=""OrText5.Text="") ThenMsgBox("请输入完整信息")ElseSetRs=NewADODB.RecordsetSQL="select*from排课表"SetRs=Conn.Execute(SQL)IfRs("上课教室")=Text4.TextThenMsgBox("该时间段该教室已被占用,请重新选择")Text4.Text=""Text5.Text=""ElseSetRs=NewADODB.RecordsetSQL="update排课表set[上课教室]='"+Text4.Text+"'where[课程名称]='"+Text1.Text+ "'and[教师姓名]='"+Text2.Text+"'and[上课时间]='"+Text5.Text+"'"SetRs=Conn.Execute(SQL)MsgBox("教室调整成功")Text1.Text=""Text2.Text=""Text3.Text=""Text4.Text=""Text5.Text=""EndIfEndSubPrivateSubCommand3_Click()'调整时间DimrtAsNewADODB.RecordsetIf(Text1.Text=""OrText2.Text=""OrText3.Text=""OrText4.Text=""OrText5.Text="") ThenMsgBox("请输入完整信息")ElseSetRs=NewADODB.RecordsetSQL="select*from排课表"SetRs=Conn.Execute(SQL)IfRs("上课时间")=Text5.TextThenMsgBox("该教室该时间段已被占用,请重新选择")Text4.Text=""Text5.Text=""ElseSetRs=NewADODB.RecordsetSQL="update排课表set[上课时间]='"+Text5.Text+"'where[课程名称]='"+Text1.Text +"'and[教师姓名]='"+Text2.Text+"'and[教室名称]='"+Text4.Text+"'"SetRs=Conn.Execute(SQL)MsgBox("时间调整成功")'Adodc1.RefreshText1.Text=""Text2.Text=""Text3.Text=""Text4.Text=""Text5.Text=""EndIfEndIfEndSubPrivateSubShowData(RsAsADODB.Recordset,DgridAsMSFlexGrid)'该过程用来在Dgrid网格中显示记录集RS中的内容DimRowNumAsIntegerRowNum=1'代表MsFlexGrid控件的行数Dgrid.Rows=RowNum'设置MsFlexGrid控件的行数Dgrid.Cols=Rs.Fields.Count'设置MsFlexGrid控件的列数Forj=0ToRs.Fields.Count-1'遍列所有列Dgrid.TextMatrix(0,j)=Rs.Fields(j).Name'把列名显示在设置MsFlexGrid控件的首行NextjDoWhileNotRs.EOF'如果不是记录集的结尾RowNum=RowNum+1'行数加1Dgrid.Rows=RowNum'设置MsFlexGrid控件的行数Forj=0ToRs.Fields.Count-1'遍列所有列IfNotIsNull(Rs.Fields(j).Value)Then'如果列中的数据不为空,切记不能用如if Var1=Null来判断变量Var1的值是否为NullDgrid.TextMatrix(RowNum-1,j)=Rs.Fields(j).Value'把列的数据显示在MsFlexGrid的相应网格中EndIfNextjRs.MoveNext'记录指针下移LoopEndSub。

相关文档
最新文档