Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

分享制作Access学校排班程序时用到的几个小函数,不足之处欢迎探讨!

时 间:2016-08-07 09:50:59
作 者:yuhong   ID:15631  城市:天津
摘 要:Access学校排班程序用到的几个函数
正 文:

最近有网友让我制作一个学校学生排班的问题的程序,要求学生排班时,把学生均匀的分班,男女人数要均匀、各班的平均分相差不超过1分,特殊学生固定在某班等等,经过考虑,实现了网友的要求,在制作过程中,自己编了几个小函数,拿出来与大家共享,不足之处,请指正。

点击图片查看大图




分享几个函数

一、取得列表框内的最大值和最小值对应的序号
说明:1,提前添加字典引用
      2,提前将列表框的记录源按照降序排列
      3,某字段最大值、最小值的变量  classMaxSN 、classMinSN 
      4, Me!班级ID  列表框对象
      5,找不到值 返回false
     
Public Function getClassSN() As Boolean
'提前将列表框的记录源排序
Dim SelectedCount As Integer
Dim iCount As Integer
Dim dicID As New Dictionary
     For iCount = 0 To Me!班级ID.ListCount - 1
       If Me!班级ID.Selected(iCount) = True Then
       SelectedCount = SelectedCount + 1
       dicID(iCount) = Me!班级ID.Column(1, iCount)
       End If
    Next iCount
    If Me!班级ID.ListCount > 0 And SelectedCount > 1 Then
     classMaxSN = (dicID.Item(dicID.Keys(0)))
     classMinSN = (dicID.Item(dicID.Keys(UBound(dicID.Keys))))
     Else
      Exit Function
      getClassSN = False
     End If
     getClassSN = True
    Set dicID = Nothing
End Function

二、删除数据库表
用途:删除数据库中的表,可以采用通配符形式如:"A*",可以删除名字首字母为A的表,表不存在不会出现错误信息!
Public Function delTbl(TblName As String)
Dim tbl
For Each tbl In CurrentDb.TableDefs
If tbl.Name Like TblName Then
DoCmd.DeleteObject acTable, tbl.Name
else
Exit Function
End If
Next
Application.RefreshDatabaseWindow
End Function

'利用字典存储最大值最小值及其对应ID号,或者第二、第三....最大值,或者第二、第三....最小值,即使最大值、最小值有重复也可以
用法:sql语句要加上排序
Public Function getMinMaxFld(sql As String, tt As Dictionary)
'sql="........  order by 取值字段 desc"
    Dim rst As New ADODB.Recordset
    rst.Open "select * from XXXX order by YYYY desc", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    If rst.RecordCount > 0 Then
        rst.MoveFirst
        tt.Add rst(0).value, rst(1).value
        rst.MoveLast
        tt.Add rst(0).value, rst(1).value
    End If
rst.Close
Set rst = Nothing
End Function



Access软件网QQ交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助