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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Реалное время
 
 автор: Pasat   (27.08.2008 в 08:50)   личное сообщение
 
 

Доброе утро
Имеется таблица в которой в одном из полей вводится момент создания записи при помощи Ф-ии NOW( ). Соответственно мы видим момент создания записи по времени установленному в системе.
Скажите пожалуйста а возможно ли получить в поле таблицы момент создания записи в реалном времени.

Заранее спасибо

  Ответить  
 
 автор: osmor   (27.08.2008 в 09:23)   личное сообщение
 
 

Сначала нужно определиться что такое "реальное" время....
Предположим у данной базы два пользователя, один во Владивостоке другой в Килининграде.
У кого реальное время?
Синхронизировать время на компьютере со временем на другом компьютере можно командой NET TIME

  Ответить  
 
 автор: ГлазастыйМышь   (27.08.2008 в 09:26)   личное сообщение
 
 

Что такое реальное время?
1. синхронизацию времени проводить на всех машинах и запрет на изменение пользователями
2. перевести таблицы на SQL или Oracle и т.д.

  Ответить  
 
 автор: Pasat   (27.08.2008 в 10:00)   личное сообщение
 
 

Вопрос в следущем
Таблица находится на серверном компьютере. В таблице есть поле в котором фиксируется момент создания записи - зн.по умлч.=NOW( ). В таблицу добавляются записи с сетевых компьютеров. Допустим что на главном компьютере изменят дату, время системы, тогда все добавленные после этого записи будут ложными (т.е. не соответствуют одному установленному времени).
Как можно избежать подобного

  Ответить  
 
 автор: osmor   (27.08.2008 в 10:21)   личное сообщение
 
 

синхронизируйте время на всех компах с сервером командой
Net time \\192.168.100.1

  Ответить  
 
 автор: Pasat   (27.08.2008 в 10:36)   личное сообщение
 
 

А как это делается и что это даст

  Ответить  
 
 автор: osmor   (27.08.2008 в 11:00)   личное сообщение
 
 


shell ("net time \\192.168.100.1 /SET /y")


это даст на машине где выполнен этот код такое же время как на \\192.168.100.1

  Ответить  
 
 автор: Pasat   (27.08.2008 в 12:06)   личное сообщение
 
 

>это даст на машине где выполнен этот код такое же время как
>на \192.168.100.1

Почему то не дает
Сделал так
Public Sub SetNETTime()
Shell ("net time \\192.168.100.1 /SET /y")
Debug.Print Now
End Sub

Запускается программа c:\windows\sistem32\net.exe
в отладчике печатается текущее время компьютера
через 10 сек. закрывается c:\windows\sistem32\net.exe

  Ответить  
 
 автор: osmor   (27.08.2008 в 12:20)   личное сообщение
 
 

192.168.100.1 - а такой компьютер в сети есть? а к нему доступ есть?
а если просто в командной строке набрать ? что пишет?

  Ответить  
 
 автор: Pasat   (27.08.2008 в 13:08)   личное сообщение
 
 

>192.168.100.1 - а такой компьютер в сети есть?

192.168.100.1 - это IP Adress компа на котором выполнен этот код ???
Shell ("net time \\192.168.100.1 /SET /y") 
Debug.Print Now


Если не трудно можно более подробно плиз

  Ответить  
 
 автор: osmor   (27.08.2008 в 13:15)   личное сообщение
 
 

Нужно указывать адрес компа с которого нужно взять время
предварительно лучше потестировать
нажать кнопку "Пуск"
меню "выполнить" (ил запустить не помню"
там набираете CMD
в открывшемся черном окне пишите
net time \\192.168.100.235 /SET
нажимаете Enter
Смотрите что получилось

  Ответить  
 
 автор: Pasat   (27.08.2008 в 13:43)   личное сообщение
 
 

На компе с IP Adress 192.168.0.2 установлено время 26.08.2008 13:30 (сетьевой комп)

На компе с IP Adress 192.168.0.3 установлено время 27.08.2008 13:30
(главный комп)
с компа (IP Adress 192.168.0.2) выполняю код
Public Sub SetNETTime() 
Shell ("net time \\192.168.0.3 /SET /y") 
Debug.Print Now 
End Sub 

В отладчике получаю 26.08.2008 13:30 а нужно 27.08.2008 13:30 (т.е. время главного компа)
Что-то не то

зы Сори не заметил время меняется на то которое установлено на главном компе просто надо Debug.Print Now выполнять с небольшой задержкой.
Public Sub SetNetTime()
Dim sglStart
Shell ("net time \\192.168.0.3 /SET /y")
sglStart = Timer
Do While (Timer - sglStart) < 2
DoEvents
Loop
Debug.Print Now
End Sub

Теперь надо помозговать как это приспособить для свой задачи
Спасибо OSMOR

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