Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите с Таймером.
 
 автор: Василий   (12.04.2009 в 19:38)   личное сообщение
 
 

Здравствуйте! Помогите пожалуйста, пытаюсь сделать себе напоминалку но что-то не клеится...
ствлю тоже самое на опен форм, толку ноль. Заранее благодарю.

Private Sub Form_Activate()
If Time = ("09:00") Then
DoCmd.OpenForm "форма1"
end if
End Sub

  Ответить  
 
 автор: Гамлет   (12.04.2009 в 19:50)   личное сообщение
 
 

Может так?
Private Sub Form_Open(Cancel As Integer)
If Time > 09:00:00 Then
DoCmd.OpenForm "форма1"
end if
End Sub

  Ответить  
 
 автор: Василий   (12.04.2009 в 20:00)   личное сообщение
 
 

нет не помогает и такое пробую:

Private Sub Form_Activate()
Me.Time = "19:58:00"
End Sub

Private Sub Form_Timer()
DoCmd.OpenForm "Форма1"
End Sub

и почему ругается на двоеточие?

  Ответить  
 
 автор: Дрюня   (12.04.2009 в 21:26)   личное сообщение
 
 

чтобы не ругался на двоеточие, попробуйте использовать функцию Format()
а таймер у Вас включен ?

  Ответить  
 
 автор: Василий   (12.04.2009 в 21:39)   личное сообщение
 
 

Я сделал следующее, в форме вставил поле10 = Time()

Private Sub Form_Activate()
Me.TimerInterval = 30000
End Sub

Private Sub Form_Timer()
Refresh
If [Поле10] = "21:34" Then
DoCmd.OpenForm "Form1"
End If
End Sub

только и это не прокатывает да таймер включен

  Ответить  
 
 автор: Lukas   (12.04.2009 в 22:11)   личное сообщение
 
 


"21:34"


Не верь глазам своим.
Какого лешего сравниваете значение типа Date со строкой?
И неплохо бы гасить таймер при выполнении условия, так, на всякий случай.

  Ответить  
 
 автор: Василий   (12.04.2009 в 22:23)   личное сообщение
 
 

а как указать то нужное время если не сравнивать со стороковым значением? извите конечно для вас наверное уже глупый вопрос, а я только учусь и как гасить таймер после выполнения условия?

  Ответить  
 
 автор: Lukas   (12.04.2009 в 22:35)   личное сообщение
 
 

1. Почитайте при тип Date, в каком виде он хранится:

Date variables are stored as IEEE 64-bit (8-byte) floating-point numbers...
When other numeric types are converted to Date, values to the left of the decimal represent date information while values to the right of the decimal represent time.

2. Ставить интервал таймера=0

  Ответить  
 
 автор: snipe   (12.04.2009 в 22:50)   личное сообщение
 
 

1. если под VBA - то создать переменную типа date и потом присвоить ей строку
например
Dim strDate as Date
srtDate="21:00:00"

или воспользоваться Format()

или поле в котором происходит установка ограничения сделать дата/время (т.е. формат поля hh\:nn\:ss)

2. Me.Timer=""
Me.TimerOn=0

  Ответить  
 
 автор: Lukas   (12.04.2009 в 22:56)   личное сообщение
 
 


Dim strDate as Date


Я тоже люблю пошутить.

  Ответить  
 
 автор: snipe   (12.04.2009 в 22:58)   личное сообщение
 
 

Грубо но иногда пролазит......
(я про Dim strDate as Date)

  Ответить  
 
 автор: snipe   (12.04.2009 в 22:59)   личное сообщение
 
 

  Ответить  
 
 автор: П.Полиграфович   (12.04.2009 в 23:27)   личное сообщение
 
 

Сделайте так - заработает:

Format(Now, "long time") >= #9:00:00 AM#
и отключите потом
Me.TimerInterval = 0
- это для VBA
да и ставте наверное на
Form_Timer()

  Ответить  
 
 автор: Василий   (13.04.2009 в 23:29)   личное сообщение
 
 

не в какую, может у кого есть пример такой програмульки или ссылку где про это почитать можно? всем спасибо!

  Ответить  
 
 автор: Denis V.   (14.04.2009 в 00:18)   личное сообщение
 
 

Если время представляете в виде "21:34" (Краткий формат времени), то сравнивайте не значение поля, а текст, в нём находящийся ;-)

  Ответить  
 
 автор: Lukas   (14.04.2009 в 00:19)   личное сообщение
11 Кб.
 
 

Будильник

Private Sub Form_Open(Cancel As Integer)
    Dim i As Double
    Me.cbbTime.AddItem -1 & ";" & "Выключен"
    For i = 0 To 1 Step 1 / 48 / 10 ' с шагом в 3 минуты (если достаточно получаса убрать /10)
        Me.cbbTime.AddItem i & ";" & Format(i, "Short Time")
    Next i
    Me.cbbTime = -1
End Sub

Private Sub cbbTime_AfterUpdate()
    If Nz(Me.cbbTime, -1) > -1 Then Me.TimerInterval = 3000 'для пробы ваставлен в 3 секунды
End Sub

Private Sub Form_Timer()
    Me.fldTime = Time()
    If Time() > CDbl(Me.cbbTime) Then
        Me.TimerInterval = 0
        Me.cbbTime = -1
        MsgBox "Дзинь дзинь дзинь"
    End If
End Sub

  Ответить  
 
 автор: Василий   (14.04.2009 в 15:47)   личное сообщение
 
 

Огромное спасибо, все получилось!

  Ответить  
 
 автор: Василий   (16.04.2009 в 16:42)   личное сообщение
 
 

Такой вопрос, а можно ли сделать так, чтоб MsgBox выходил поверх всех окон windows ? потому как если сидишь не в Аксе табличку не увидешь....

Private Sub Form_Timer()
Me.fldTime = Time()
If Time() > CDbl(Me.Час2) Then
Me.TimerInterval = 0
Me.Час2 = -1
MsgBox "Цель Звонка: " + [Цельзвонка], vbExclamation + vbOKOnly, [Компания]
End If
End Sub

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList