标题:做的一个学校考试 打铃程序,请搞手指点一下!!
只看楼主
dyd99
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-26
结帖率:0
已结贴  问题点数:10 回复次数:10 
做的一个学校考试 打铃程序,请搞手指点一下!!
Dim timelist2()
Dim timelist3()
Dim timelist4()
Dim timelist5()
Dim timelist6()
Dim timelist7()
Dim timelist8()
Dim timelist9()
Dim timelist10()
Dim timelist11()
Dim timelist12()
Dim i1 As Integer
Dim i2 As Integer
Dim i3 As Integer
Dim i4 As Integer
Dim i5 As Integer
Dim i6 As Integer
Dim i7 As Integer
Dim i8 As Integer
Dim i9 As Integer
Dim i10 As Integer
Dim i11 As Integer
Dim i12 As Integer

   Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long


Private Sub Form_Load()
  If GetDriveType(dri) <> 5 Then
    If Dir(App.Path & "\test.xls") <> "" Then
    MsgBox "恭禧:Test.xls配置文件已经存在,不需要再创建了", vbInformation, "文件搜索提示····"
    Timer1.Enabled = True

    Else: MsgBox "不存在  Test.xls 这个配置文件,", vbInformation, "文件搜索提示····"
Timer1.Enabled = False

End If
End If
End Sub

Private Sub Timer1_Timer()
    Label2.Caption = "现在时间是:" & Time
    Label3.Caption = "今天的日期是:" & Date
    Label5.Caption = "今天是星期:" & Val(Weekday(Date)) - 1
  
   
    ReDim timelist1(20) '重新定义数组
    ReDim timelist2(20) '重新定义数组
    ReDim timelist3(20) '重新定义数组
    ReDim timelist4(20) '重新定义数组
    ReDim timelist5(20) '重新定义数组
    ReDim timelist6(20) '重新定义数组
    ReDim timelist7(20) '重新定义数组
    ReDim timelist8(20) '重新定义数组
    ReDim timelist9(20) '重新定义数组
    ReDim timelist10(20) '重新定义数组
    ReDim timelist11(20) '重新定义数组
    ReDim timelist12(20) '重新定义数组
    '以两节课为例,即有四个时间点,保存在下面的数组中即可
 
  '下是对  EXCEL 的调用
        Dim excel As Object
Set excel = CreateObject("excel.application")     '设定 excel API
                '--------------这上面可不看 照抄
excel.Workbooks.Open App.Path & "\test.xls"          'P.s请先自己创立    'excel 开启
excel.Visible = False                                       'excel  显示 or  隐藏     (True of False

'Dim i1 As Integer '时间变量
i1 = 0
For i1 = 0 To UBound(timelist1)
    If Now() = timelist1(i1) Then
         = "stop"
         = "open"
        MMControl1.DeviceType = "mp3audio"
        MMControl1.PlayEnabled = True
         = "prev"
         = "play"
        Exit For
          timelist1 = Array(CDate(excel.cells(3, 3)), CDate(excel.cells(4, 3)), CDate(excel.cells(5, 3)), CDate(excel.cells(6, 3)) _
                            , CDate(excel.cells(7, 3)), CDate(excel.cells(8, 3)), CDate(excel.cells(9, 3)), CDate(excel.cells(10, 3)) _
                            , CDate(excel.cells(11, 3)), CDate(excel.cells(12, 3)), CDate(excel.cells(13, 3)), CDate(excel.cells(14, 3)) _
                            , CDate(excel.cells(15, 3)), CDate(excel.cells(16, 3)), CDate(excel.cells(17, 3)), CDate(excel.cells(18, 3)) _
                            , CDate(excel.cells(19, 3)), CDate(excel.cells(20, 3)))
    MMControl1.FileName = App.Path & "\铃声\考前30分钟.mp3"         '指定铃声文件
    End If
    'If Weekday(Date) = "5,6" Then  ‘ 排除星六星期天或不考试的日期
   ' MMControl1.CanPlay = False
   ' End If
Next i1

     'Dim i2 As Integer '时间变量
i2 = 0
For i2 = 0 To UBound(timelist2)
    If Now() = timelist2(i2) Then
         = "stop"
         = "open"
        MMControl1.DeviceType = "mp3audio"
        MMControl1.PlayEnabled = True
         = "prev"
         = "play"
        Exit For
          timelist2 = Array(CDate(excel.cells(3, 4)), CDate(excel.cells(4, 4)), CDate(excel.cells(5, 4)), CDate(excel.cells(6, 4)) _
                            , CDate(excel.cells(7, 4)), CDate(excel.cells(8, 4)), CDate(excel.cells(9, 4)), CDate(excel.cells(10, 4)) _
                            , CDate(excel.cells(11, 4)), CDate(excel.cells(12, 4)), CDate(excel.cells(13, 4)), CDate(excel.cells(14, 4)) _
                            , CDate(excel.cells(15, 4)), CDate(excel.cells(16, 4)), CDate(excel.cells(17, 4)), CDate(excel.cells(18, 4)) _
                            , CDate(excel.cells(19, 4)), CDate(excel.cells(20, 4)))
    MMControl1.FileName = App.Path & "\铃声\考前20分钟.mp3"         '指定铃声文件
    End If
Next i2
 
   i3 = 0
For i3 = 0 To UBound(timelist3)
    If Now() = timelist3(i3) Then
         = "stop"
         = "open"
        MMControl1.DeviceType = "mp3audio"
        MMControl1.PlayEnabled = True
         = "prev"
         = "play"
        Exit For
          timelist3 = Array(CDate(excel.cells(3, 5)), CDate(excel.cells(4, 5)), CDate(excel.cells(5, 5)), CDate(excel.cells(6, 5)) _
                            , CDate(excel.cells(7, 5)), CDate(excel.cells(8, 5)), CDate(excel.cells(9, 5)), CDate(excel.cells(10, 5)) _
                            , CDate(excel.cells(11, 5)), CDate(excel.cells(12, 5)), CDate(excel.cells(13, 5)), CDate(excel.cells(14, 5)) _
                            , CDate(excel.cells(15, 5)), CDate(excel.cells(16, 5)), CDate(excel.cells(17, 5)), CDate(excel.cells(18, 5)) _
                            , CDate(excel.cells(19, 5)), CDate(excel.cells(20, 5)))
    MMControl1.FileName = App.Path & "\铃声\预备铃.mp3"         '指定铃声文件
    End If
Next i3
 
   
      i4 = 0
For i4 = 0 To UBound(timelist4)
    If Now() = timelist4(i4) Then
         = "stop"
         = "open"
        MMControl1.DeviceType = "mp3audio"
        MMControl1.PlayEnabled = True
         = "prev"
         = "play"
        Exit For
          timelist4 = Array(CDate(excel.cells(3, 6)), CDate(excel.cells(4, 6)), CDate(excel.cells(5, 6)), CDate(excel.cells(6, 6)) _
                            , CDate(excel.cells(7, 6)), CDate(excel.cells(8, 6)), CDate(excel.cells(9, 6)), CDate(excel.cells(10, 6)) _
                            , CDate(excel.cells(11, 6)), CDate(excel.cells(12, 6)), CDate(excel.cells(13, 6)), CDate(excel.cells(14, 6)) _
                            , CDate(excel.cells(15, 6)), CDate(excel.cells(16, 6)), CDate(excel.cells(17, 6)), CDate(excel.cells(18, 6)) _
                            , CDate(excel.cells(19, 6)), CDate(excel.cells(20, 6)))
    MMControl1.FileName = App.Path & "\铃声\拆封哨.mp3"         '指定铃声文件
    End If
Next i4

   
          i5 = 0
For i5 = 0 To UBound(timelist5)
    If Now() = timelist5(i5) Then
         = "stop"
         = "open"
        MMControl1.DeviceType = "mp3audio"
        MMControl1.PlayEnabled = True
         = "prev"
         = "play"
        Exit For
          timelist4 = Array(CDate(excel.cells(3, 7)), CDate(excel.cells(4, 7)), CDate(excel.cells(5, 7)), CDate(excel.cells(6, 7)) _
                            , CDate(excel.cells(7, 7)), CDate(excel.cells(8, 7)), CDate(excel.cells(9, 7)), CDate(excel.cells(10, 7)) _
                            , CDate(excel.cells(11, 7)), CDate(excel.cells(12, 7)), CDate(excel.cells(13, 7)), CDate(excel.cells(14, 7)) _
                            , CDate(excel.cells(15, 7)), CDate(excel.cells(16, 7)), CDate(excel.cells(17, 7)), CDate(excel.cells(18, 7)) _
                            , CDate(excel.cells(19, 7)), CDate(excel.cells(20, 7)))
    MMControl1.FileName = App.Path & "\铃声\发卷哨.mp3"         '指定铃声文件
    End If
Next i5


      i6 = 0
For i6 = 0 To UBound(timelist6)
    If Now() = timelist6(i6) Then
         = "stop"
         = "open"
        MMControl1.DeviceType = "mp3audio"
        MMControl1.PlayEnabled = True
         = "prev"
         = "play"
        Exit For
          timelist6 = Array(CDate(excel.cells(3, 8)), CDate(excel.cells(4, 8)), CDate(excel.cells(5, 8)), CDate(excel.cells(6, 8)) _
                            , CDate(excel.cells(7, 8)), CDate(excel.cells(8, 8)), CDate(excel.cells(9, 8)), CDate(excel.cells(10, 8)) _
                            , CDate(excel.cells(11, 8)), CDate(excel.cells(12, 8)), CDate(excel.cells(13, 8)), CDate(excel.cells(14, 8)) _
                            , CDate(excel.cells(15, 8)), CDate(excel.cells(16, 8)), CDate(excel.cells(17, 8)), CDate(excel.cells(18, 8)) _
                            , CDate(excel.cells(19, 8)), CDate(excel.cells(20, 8)))
    MMControl1.FileName = App.Path & "\铃声\开考铃.mp3"         '指定铃声文件
    End If
Next i6

      i7 = 0
For i7 = 0 To UBound(timelist7)
    If Now() = timelist7(i7) Then
         = "stop"
         = "open"
        MMControl1.DeviceType = "mp3audio"
        MMControl1.PlayEnabled = True
         = "prev"
         = "play"
        Exit For
          timelist7 = Array(CDate(excel.cells(3, 9)), CDate(excel.cells(4, 9)), CDate(excel.cells(5, 9)), CDate(excel.cells(6, 9)) _
                            , CDate(excel.cells(7, 9)), CDate(excel.cells(8, 9)), CDate(excel.cells(9, 9)), CDate(excel.cells(10, 9)) _
                            , CDate(excel.cells(11, 9)), CDate(excel.cells(12, 9)), CDate(excel.cells(13, 9)), CDate(excel.cells(14, 9)) _
                            , CDate(excel.cells(15, 9)), CDate(excel.cells(16, 9)), CDate(excel.cells(17, 9)), CDate(excel.cells(18, 9)) _
                            , CDate(excel.cells(19, 9)), CDate(excel.cells(20, 9)))
    MMControl1.FileName = App.Path & "\铃声\界线哨.mp3"         '指定铃声文件
    End If
Next i7

      i8 = 0
For i8 = 0 To UBound(timelist8)
    If Now() = timelist8(i8) Then
         = "stop"
         = "open"
        MMControl1.DeviceType = "mp3audio"
        MMControl1.PlayEnabled = True
         = "prev"
         = "play"
        Exit For
          timelist8 = Array(CDate(excel.cells(3, 3)), CDate(excel.cells(4, 3)), CDate(excel.cells(5, 3)), CDate(excel.cells(6, 3)) _
                            , CDate(excel.cells(7, 10)), CDate(excel.cells(8, 10)), CDate(excel.cells(9, 10)), CDate(excel.cells(10, 10)) _
                            , CDate(excel.cells(11, 10)), CDate(excel.cells(12, 10)), CDate(excel.cells(13, 10)), CDate(excel.cells(14, 10)) _
                            , CDate(excel.cells(15, 10)), CDate(excel.cells(16, 10)), CDate(excel.cells(17, 10)), CDate(excel.cells(18, 10)) _
                            , CDate(excel.cells(19, 10)), CDate(excel.cells(20, 10)))
    MMControl1.FileName = App.Path & "\铃声\提醒哨.mp3"         '指定铃声文件
    End If
Next i8

      i9 = 0
For i9 = 0 To UBound(timelist9)
    If Now() = timelist9(i9) Then
         = "stop"
         = "open"
        MMControl1.DeviceType = "mp3audio"
        MMControl1.PlayEnabled = True
         = "prev"
         = "play"
        Exit For
          timelist9 = Array(CDate(excel.cells(3, 11)), CDate(excel.cells(4, 11)), CDate(excel.cells(5, 11)), CDate(excel.cells(6, 11)) _
                            , CDate(excel.cells(7, 11)), CDate(excel.cells(8, 11)), CDate(excel.cells(9, 11)), CDate(excel.cells(10, 11)) _
                            , CDate(excel.cells(11, 11)), CDate(excel.cells(12, 11)), CDate(excel.cells(13, 11)), CDate(excel.cells(14, 11)) _
                            , CDate(excel.cells(15, 11)), CDate(excel.cells(16, 11)), CDate(excel.cells(17, 11)), CDate(excel.cells(18, 11)) _
                            , CDate(excel.cells(19, 11)), CDate(excel.cells(20, 11)))
    MMControl1.FileName = App.Path & "\铃声\终了铃.mp3"         '指定铃声文件
    End If
Next i9
'excel.ActiveWorkbook.Save                           'excel 存档
excel.quit


End Sub
为什么 到了时间不打铃呢···〈〉〈〉请搞手指点
搜索更多相关主题的帖子: 考试 
2013-05-10 00:00
dyd99
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-26
得分:0 
而且第次都 得打那个EXCEL文件  对内存调用有点高啊
2013-05-10 00:02
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:4 
timelist9 = Array(CDate(excel.cells(3, 11)), CDate(excel.cells(4, 11)), CDate(excel.cells(5, 11)), CDate(excel.cells(6, 11)) _
 , CDate(excel.cells(7, 11)), CDate(excel.cells(8, 11)), CDate(excel.cells(9, 11)), CDate(excel.cells(10, 11)) _
 , CDate(excel.cells(11, 11)), CDate(excel.cells(12, 11)), CDate(excel.cells(13, 11)), CDate(excel.cells(14, 11)) _
 , CDate(excel.cells(15, 11)), CDate(excel.cells(16, 11)), CDate(excel.cells(17, 11)), CDate(excel.cells(18, 11)) _
 , CDate(excel.cells(19, 11)), CDate(excel.cells(20, 11)))
 MMControl1.FileName = App.Path & "\铃声\终了铃.mp3"'指定铃声文件

这你些代码几时能执行到??

当 IF 成立时,执行到这里时, 出现一个 exit for ,又退出循环,不执行。
当 IF 不成立时,不执行这里。

自然不会打响。

----------------------------
我觉得你这个思路有问题。
首先 XLS 文件就规划不当。你这种规划,只有你自己才知道这个XLS 每个格子是干什么的。
其次,每次time 执行时,都要打开 EXCEL ,太耗时间了,另外,你的数组是 可变类型的,也比较耗内存。

授人于鱼,不如授人于渔
早已停用QQ了
2013-05-10 08:33
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
我认为的 流程如下:
XLS 结构

3: 本行为默认值
3行为标题
4行为数据
每二个为一组


6行: 开始,为例外日,6行为标题行,数据从7行开始。


程序流程:
定义结构:
   时间
   铃声文件
   是否响了铃
结构定义
变量:总铃数
变量:读配置日期

load 事件。
dir(配置文件) 存在,

根据计算机的日期,
从A7 开始向下读,读到无数据为止。
判断读到的数据是否与当前日期相同,相同,则读该行的数据。
如果没有发现相同的日期,则读读默认值
读配置文件的过程定义为一个过程。传递数组、行号进去。
对数组的时间进行排序。
  是否响了铃初始化为未响
设置 读配置日期为当前日期

time 事件中
每1秒一个事件。
判断当前日期是否为 读配置日期
  如果不成立,调用 load 事件,重读配置。

总铃数〉0 则继续判断
判断当前时间是否与数组中的 时间相同,
相同,先置 是否响了铃 为响了。
再进行响铃。响铃也可以定义为一个过程。
总铃数判断结束
time 事件结束

读配置过程(数组(),行号)
'在 load  事件中已打开了 XLS 文件,并且有关变量均为全局变量。过程中能直接使用。
读总铃数= B列    '  .cell(2,行号)
如果总铃数〉0
redim 数组(总铃数)
for i=1 to 总铃数
  数组(i).时间= .cell(i*2+1,行号)
  数组(i).铃声=.cell(i*2+2,行号)
next i
总铃数判断结束
end sub


总铃数可以在 XLS 中设置工式计算出来。

授人于鱼,不如授人于渔
早已停用QQ了
2013-05-10 08:55
dyd99
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-26
得分:0 
回复 3楼 风吹过b
谢谢
2013-05-10 10:22
dyd99
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-26
得分:0 
回复 4楼 风吹过b
谢谢,你能告诉我QQ吗?我想在QQ实时跟你请教一下
2013-05-10 10:28
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:652
专家分:3402
注 册:2008-5-7
得分:4 
打个铃需要这么复杂?不就是判断到指定时间播放指定音乐吗?你既然把设定的时间都放进excel中,为什么还要弄许多数组?另外你考前30分和提醒哨用的是同一列的时间,他们可以在同时播出吗?一开始弄个判断磁盘驱动器类型是否为cdrom,并且dri是个空值,这不是废句子吗?
应该有更简洁的设计思路和方法。
2013-05-10 11:25
zwneng
Rank: 1
等 级:新手上路
帖 子:1
专家分:4
注 册:2013-4-21
得分:4 
学习
2013-05-14 16:06
斯蒂芬金莲
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-5-18
得分:0 
求QQ,求指教。
2013-05-18 20:02
dyd99
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-26
得分:0 
回复 7楼 lowxiong
前辈:我用数组的意思是为了判断,现在时间 now() 是否与数组内的数据--EXCEL 单元格中的数据 相同,如果是则播放指定的音乐,不是的话再循环 用Timer 控件 time 事件判断~~~

可能是水平太菜了,你批评指证一下嘛,最好是给一个代码,我运行一下

大意就是:先在设置界面进行考试时间的设置存入一个TEST.XLS的电子表格中,再判断时间是否与EXCEL单元格内的数据一致,如果一致则播放指定的音乐。
2013-05-19 17:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-406683-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.387359 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved