Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Obtenir l'heure du serveur en vba

6 réponses
Avatar
Poulpor
Bonjour,

J'ai créé un fichier Excel de forecasts pour les commerciaux de mon
entreprise.
Quand l'utilisateur clique sur 'Save', la version courante du forecast est
sauvée sur une base access : en version X si la date courante est Xème
semaine de l'année.

Evidemment, je ne veux pas que l'utilisateur trafique son heure PC pour
écraser d'anciennes versions de forecast.

Pour cela, il me faut un moyen de trouver une heure 'Objective' (site web,
serveur de l'entreprise sur lequel se trouve la base access).

Auriez-vous une idée ? Je cherche des exemples de 'net time' sans vraiment
comprendre les API. Je cherche également des manières d'aller requeter des
sites web comprenant l'heure : c'est lourd et franchement limite comme
méthode.

Merci d'avance aux contributeurs,

Poulpor

6 réponses

Avatar
LE TROLL
Bonsoir,

Oh, pas totalement simple !

Un site Web, "oui mais", peut être en rade (le site, Internet), et là ça
fait quoi (outrepasse, plante) ?

On peut faire de l'approchant en enregistrant l'heure, et vérifier que
l'heure ancienne est inférieure à l'heure nouvelle, mais savoir si l'heure
est bien l'heure, ou encore, interdire de toucher à l'heure ?

Et l'utilisateur, a-t-il accès au serveur, car s'il l'a, ça ne sert à
rien !

Je viens de penser à un truc, à condition que l'utilisateur n'ait pas le
droit au serveur évidemment, ce serait de mettre une fonction résidente qui
charge l'heure courante (par time), et d'aller lire cette heure sur le
serveur...

J'ai regardé 2 API, elle ne prennent pas en compte le chemin, donc a
priori on ne peut pas indiquer un chemin (je pense au serveur).

Tu devrais poser ta question sur le forum VB, car ils ont l'habitude de
gérer ce genre de problème, car moi je ne fais que du logiciel, et j'ai
rarement fait du serveur...

Mais... parfois il n'y a pas de réponse, à part "impossible" ???


------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Poulpor" a écrit dans le message de
news:
| Bonjour,
|
| J'ai créé un fichier Excel de forecasts pour les commerciaux de mon
| entreprise.
| Quand l'utilisateur clique sur 'Save', la version courante du forecast est
| sauvée sur une base access : en version X si la date courante est Xème
| semaine de l'année.
|
| Evidemment, je ne veux pas que l'utilisateur trafique son heure PC pour
| écraser d'anciennes versions de forecast.
|
| Pour cela, il me faut un moyen de trouver une heure 'Objective' (site web,
| serveur de l'entreprise sur lequel se trouve la base access).
|
| Auriez-vous une idée ? Je cherche des exemples de 'net time' sans vraiment
| comprendre les API. Je cherche également des manières d'aller requeter des
| sites web comprenant l'heure : c'est lourd et franchement limite comme
| méthode.
|
| Merci d'avance aux contributeurs,
|
| Poulpor
|
Avatar
LE TROLL
Ah, fais ça pour voir avec par exemple un bouton ou une procédure :

Sub Command1_Click()
ChDir "e:"
MsgBox Time
ChDir "lettre du poste appelant:"
End Sub

"e" étant la lettre du serveur, ceci en changeant préalablement l'heure du
poste, afin de voir, comme on lui dit de changer de lecteur (donc ici de
poste pour prendre la lettre du serveur), s'il affiche l'heure du serveur,
ou l'heure que tu auras changé sur le poste ???

Si quelqu'un lit ça et peut le faire, peut-il me dire aussi, je suis
curieux de savoir si ça marche ?

------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Poulpor" a écrit dans le message de
news:
| Bonjour,
|
| J'ai créé un fichier Excel de forecasts pour les commerciaux de mon
| entreprise.
| Quand l'utilisateur clique sur 'Save', la version courante du forecast est
| sauvée sur une base access : en version X si la date courante est Xème
| semaine de l'année.
|
| Evidemment, je ne veux pas que l'utilisateur trafique son heure PC pour
| écraser d'anciennes versions de forecast.
|
| Pour cela, il me faut un moyen de trouver une heure 'Objective' (site web,
| serveur de l'entreprise sur lequel se trouve la base access).
|
| Auriez-vous une idée ? Je cherche des exemples de 'net time' sans vraiment
| comprendre les API. Je cherche également des manières d'aller requeter des
| sites web comprenant l'heure : c'est lourd et franchement limite comme
| méthode.
|
| Merci d'avance aux contributeurs,
|
| Poulpor
|
Avatar
Jac
Bonjour Poulpor,

il est possible, mais ce n'est pas mon domaine, de faire en sorte que
tous les pc d'un réseau soient synchronisés sur l'heure du serveur. Les
utilisateurs n'ayant pas les droit pour toucher aux réglages
date-heure.
Donc je pense que ton problème ou sa solution soient plutôt du ressort
de l'équipe informatique que d'Excel.

Autre piste : il faudrait voir si, en enregistrant le fichier sur le
serveur, il prend la date-heure d'enregistrement du serveur ou du pc
"créateur". Dans ce cas, il suffirait de faire un enregistrement
temporaire sur le serveur, puis de récupérer date-heure
d'enregistrement et de l'intégrer dans le nom du fichier à enregistrer
au bon endroit.

Autre piste : ajouter un n° incrémental dans le nom du fichier. Par une
macro before save, tu ouvres un fichier sur le serveur, copie la valeur
qui est en A1, remplace la valeur de A1 par A1+1, enregistre le fichier
et le ferme, puis intègre ce n° dans le nom du fichier à enregistrer.

Autre piste : intègrer au nom du fichier la date et l'heure avec les
secondes et dixièmes de secondes. Même en bricolant la montre, pour
avoir la même chose, ça va être du sport.

Mais de toute façon, si l'utilisateur a accès au répertoire cible, il
peut remplacer ce qu'il veut... Et il faudra aussi l'obliger à utiliser
les macros si la solution passe par elles.

On en reparle quand tu veux.

Jac

Bonjour,

J'ai créé un fichier Excel de forecasts pour les commerciaux de mon
entreprise.
Quand l'utilisateur clique sur 'Save', la version courante du forecast est
sauvée sur une base access : en version X si la date courante est Xème
semaine de l'année.

Evidemment, je ne veux pas que l'utilisateur trafique son heure PC pour
écraser d'anciennes versions de forecast.

Pour cela, il me faut un moyen de trouver une heure 'Objective' (site web,
serveur de l'entreprise sur lequel se trouve la base access).

Auriez-vous une idée ? Je cherche des exemples de 'net time' sans vraiment
comprendre les API. Je cherche également des manières d'aller requeter des
sites web comprenant l'heure : c'est lourd et franchement limite comme
méthode.

Merci d'avance aux contributeurs,

Poulpor


Avatar
LE TROLL
Tiens, j'ai posé la question sur VB, voici ce qu'en dise les
spécialistes, bon amusement :

Regardes du côté de la commande NET TIME, du côté des postes clients :

Net Time NomDuServeur

ou

Net Time NomDuServeur > Temps.txt

qui redirige la sortie dans un fichier que tu pourras relire

Pour l'aide complète : NET TIME /HELP

Cela suppose que le service Serveur de temps, W32Time soit opérationnel
sur le serveur, tu peux vérifier avec la commande :

sc NomDuServeur query w32time

qui doit te répondre quelque chose comme :

SERVICE_NAME: w32time
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE,
ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0

Tu peux aussi lire ceci qui te donnera une idée du protocole mise en
oeuvre (temps UTC, Protocole NTP, TimeZone : GMT [+-]X, Heure d'été /
Heure d'hiver, etc ...) :

<http://fr.wikipedia.org/wiki/Network_Time_Protocol>



------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Poulpor" a écrit dans le message de
news:
| Bonjour,
|
| J'ai créé un fichier Excel de forecasts pour les commerciaux de mon
| entreprise.
| Quand l'utilisateur clique sur 'Save', la version courante du forecast est
| sauvée sur une base access : en version X si la date courante est Xème
| semaine de l'année.
|
| Evidemment, je ne veux pas que l'utilisateur trafique son heure PC pour
| écraser d'anciennes versions de forecast.
|
| Pour cela, il me faut un moyen de trouver une heure 'Objective' (site web,
| serveur de l'entreprise sur lequel se trouve la base access).
|
| Auriez-vous une idée ? Je cherche des exemples de 'net time' sans vraiment
| comprendre les API. Je cherche également des manières d'aller requeter des
| sites web comprenant l'heure : c'est lourd et franchement limite comme
| méthode.
|
| Merci d'avance aux contributeurs,
|
| Poulpor
|
Avatar
LE TROLL
Encore d'autres pistes :

api Win32
Tu peux demander sur le newsgroup pro des apis win32 :
news://194.177.96.26/fr.comp.os.ms-windows.programmation
où cela a déjà été discuté

------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Poulpor" a écrit dans le message de
news:
| Bonjour,
|
| J'ai créé un fichier Excel de forecasts pour les commerciaux de mon
| entreprise.
| Quand l'utilisateur clique sur 'Save', la version courante du forecast est
| sauvée sur une base access : en version X si la date courante est Xème
| semaine de l'année.
|
| Evidemment, je ne veux pas que l'utilisateur trafique son heure PC pour
| écraser d'anciennes versions de forecast.
|
| Pour cela, il me faut un moyen de trouver une heure 'Objective' (site web,
| serveur de l'entreprise sur lequel se trouve la base access).
|
| Auriez-vous une idée ? Je cherche des exemples de 'net time' sans vraiment
| comprendre les API. Je cherche également des manières d'aller requeter des
| sites web comprenant l'heure : c'est lourd et franchement limite comme
| méthode.
|
| Merci d'avance aux contributeurs,
|
| Poulpor
|
Avatar
poulpor78
Bonsoir et merci pour vos réponses.

D'abord je réponds sur le net time : je n'y suis jamais arrivé malgré
les exemples google / vbfrance. Meme dans la console, je n'y arrive pas
entre le nom du serveur et le nom du domaine.

Par contre, j'ai trouvé un moyen de contourner ma difficulté :

1/ Je crée un fichier bidon par FSO sur le serveur
2/ Je lie l'heure de modification de ce fichier.

C'est bien l'heure/date du serveur et non l'heure/date du pc. C'est pas
la classe comme solution mais ca roule. Et comme mes commerciaux sont en
lecture ecriture sur le dossier dans lequel est placé ma base access; je
peux leur faire créer le fichier bidon dans le même répertoire.