如下图所示:S088-004和S088-005的控件都一样,通过一个Time控件检测时间是否到达运行时间,到达的话播放123.MP3并跳出提醒框!
但是运行结果S088-004上面的003 002都可以做到但是S088-005就不会播放123.MP3,不能跳出提醒对话框
不知道是什么原因!请各位帮帮忙看看吧!!谢谢了!
'S088-004 代碼開始
Private Sub Check3_Click()
If Check3.Value = 1 Then
        L004_1.Caption = Format(Now, "MM月DD日 hh:mm")
    Else
        L004_1.Caption = "設備還未運行"
        L004_2.Caption = "設備還未運行"
    End If
End Sub
Private Sub cmdOk_3_Click()
L004_1.Caption = Format(Now, "MM月DD日 hh:mm")
L004_2.Caption = Format(DateAdd("h", Val(T004_3.Text), Now), "MM月DD日 hh:mm")
Timer3.Enabled = TruecmdOk_3.Enabled = True
cmdOk_3.Enabled = FalseT004_2.Locked = True
T004_1.Locked = True
T004_3.Locked = TrueT004_2.ForeColor = vbRed
T004_1.ForeColor = vbRed
T004_3.ForeColor = vbRedL004_1.ForeColor = vbRed
L004_2.ForeColor = vbRed
End SubPrivate Sub cmdCan_3_Click()
cmdOk_3.Enabled = True
cmdCan_3.Enabled = TrueT004_2.Locked = False
T004_1.Locked = False
T004_3.Locked = FalseWindowsMediaPlayer1.CloseT004_2.Text = "請填寫運行時間"
T004_1.Text = "請填寫申請單號"
T004_3.Text = "請填寫樣品名稱"T004_2.ForeColor = vbBlack
T004_1.ForeColor = vbBlack
T004_3.ForeColor = vbBlack
L004_1.ForeColor = vbBlack
L004_2.ForeColor = vbBlackL004_1.Caption = ""
L004_2.Caption = ""
Check3.Value = 0
 
End SubPrivate Sub Timer3_Timer()
Dim d1  As Date, response As Long
d1 = CDate(L004_2.Caption)
If Now >= d1 Then
    WindowsMediaPlayer1.URL = VB.App.Path & "\123.mp3"
    response = MsgBox("測試已完成", vbOKOnly + vbInformation, "通知")
    Timer3.Enabled = False
End If
End Sub
'S088-004 代碼結束'S088-005 代碼開始
Private Sub Check5_Click()
If Check5.Value = 1 Then
        L005_1.Caption = Format(Now, "MM月DD日 hh:mm")
    Else
        L005_1.Caption = "設備還未運行"
        L005_2.Caption = "設備還未運行"
    End If
End Sub
Private Sub cmdOk_5_Click()
L005_1.Caption = Format(Now, "MM月DD日 hh:mm")
L005_2.Caption = Format(DateAdd("h", Val(T005_3.Text), Now), "MM月DD日 hh:mm")
Timer5.Enabled = TruecmdOk_5.Enabled = True
cmdOk_5.Enabled = FalseT005_2.Locked = True
T005_1.Locked = True
T005_3.Locked = TrueT005_2.ForeColor = vbRed
T005_1.ForeColor = vbRed
T005_3.ForeColor = vbRedL005_1.ForeColor = vbRed
L005_2.ForeColor = vbRed
End SubPrivate Sub cmdCan_5_Click()
cmdOk_5.Enabled = True
cmdCan_5.Enabled = TrueT005_2.Locked = False
T005_1.Locked = False
T005_3.Locked = FalseWindowsMediaPlayer1.CloseT005_2.Text = "請填寫運行時間"
T005_1.Text = "請填寫申請單號"
T005_3.Text = "請填寫樣品名稱"T005_2.ForeColor = vbBlack
T005_1.ForeColor = vbBlack
T005_3.ForeColor = vbBlack
L005_1.ForeColor = vbBlack
L005_2.ForeColor = vbBlackL005_1.Caption = ""
L005_2.Caption = ""
Check5.Value = 0
 
End SubPrivate Sub Timer5_Timer()
Dim d1  As Date, response As Long
d1 = CDate(L005_2.Caption)
If Now >= d1 Then
    WindowsMediaPlayer1.URL = VB.App.Path & "\123.mp3"
    response = MsgBox("測試已完成", vbOKOnly + vbInformation, "通知")
    Timer5.Enabled = False
End If
End Sub
'S088-005 代碼結束

解决方案 »

  1.   

    没人?大胡子不是人?
    你说话清楚点。
    下面的代码看看
    d1 = CDate(L005_2.Caption)
    If Now >= d1 Then
      

  2.   

    怎么可能找不到问题,你一步一步走下去看看
    你窗体上的控件真正触发你的函数了么? 每个数据都对不对
    你确定有timer5,不断被触发么?说说你怎么debug得
      

  3.   

    在Private Sub Timer3_Timer()和endsub之间放断点,按F9
    在Private Sub Timer5_Timer()和endsub之间放断点,按F9跑程序,看看是不是预期的断在timer3和timer5里面了。
    如果2个都断了,而没有出现播放声音和提示,看看为什么。如果一个断另外一个没有断,那就看为什么有个没有断
      

  4.   

    感谢大家的帮助。我终于找到问题了
    原因是我没有写计时器的属性代码
    Private Sub Form_Load()
    Timer1.Enabled = False
    Timer1.Interval = 50
    Timer2.Enabled = False
    Timer2.Interval = 50
    Timer3.Enabled = False
    Timer3.Interval = 50
    Timer4.Enabled = False
    Timer4.Interval = 50
    Timer5.Enabled = False
    Timer5.Interval = 50
    Timer6.Enabled = False
    Timer6.Interval = 50
    Timer7.Enabled = False
    Timer7.Interval = 50
    Timer8.Enabled = False
    Timer8.Interval = 50
    Timer9.Enabled = False
    Timer9.Interval = 50
    Timer10.Enabled = False
    Timer10.Interval = 50
    Timer11.Enabled = False
    Timer11.Interval = 50
    End Sub
    再次感谢大家的帮助!!!谢谢!!!