|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
bonjour à tous
Je me lance dans une fonction, chose pour laquelle je suis totalement novice et j'ai donc créé un module après avoir lu un tuto. j'appelle une fonction depuis un formulaire, le problème est que à son ouverture la fonction ne récupère pas certaines données disponibles dans le formulaire de départ et en guise de cela une msgbox de test me retourne 31/12/1899... A savoir, la date et l'heure d'un évènement enregistré. L'idée est que cette fonction se lancerait à l'ouverture de différents formulaires afin de verrouiller l'enregistrement à l'utilisateur si la date et l'heure de l'évènement = + 24 heures Pour faciliter l'aide j'ai placé un fichier test en PJ. Merci d'avance.
__________________
|
|
|
00
|
|
|
#2 | |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonsoir,
Citation:
|
|
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
Mille excuses, je suis confus.
En fait j'avais démarré avec des copies de formulaire et table qui sont normalement masqués dans une de mes BDD. J'ai changé la pièce jointe.
__________________
|
|
|
00
|
|
|
#4 |
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 206 ![]() |
Bonjour Claude et @rkane,
Première chose : Si ta procédure verrou est publique et destinée à plusieurs formulaire alors tu dois préciser dans ta Sub à quel formulaire appartiennent les zones de textes "DateEvenement" et "HeureEvenement" : Du style : Code :
Verrouillage = (Forms!Test!DateEvenement + Forms!Test!HeureEvenement) + #11:59:00 PM# + #12:01:00 AM#
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
|
10
|
|
|
#5 |
![]() ![]() Morgan BILLYTechnicien de Production Inscription : octobre 2004 Messages : 4 103 ![]() |
Salut,
La solution de Denis est nickel .Une autre solution consiste à passer les informations en paramètre de ta fonction. Par contre attention aux données. un champ date à pour type Long (32bits) alors que la fonction Now() renvoi une donnée de type Réel Double (64bits). Ormis le faite que la deuxième variable soit deux fois plus gourmande la conversion de c'est données démontre que l'on peut vite avoir quelque chose de faux. Now stock la date dans l'entier et place l'heure système après la virgule, dans le cas de la date 02/02/2011. et maintenant Long avec now C'est exemple démontre qu'il est facile de se planter. Dans ton exemple tu utilise Now() pour le champ heure actuelle. Que veux-tu faire exactement avec ce formulaire ? @++
__________________
Personnaliser la vue Backstage d'Access 2010 Découvrez avec nous Office 2010 Je ne réponds pas aux questions techniques par MP
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
bonjour Delphy
alors ce que je faire.... Dans tous les formulaires de ma BDD j'ai du code qui verrouille les données et modifie l'activation des boutons quand la date d'enregistrement est dépassée d'un jour. Mais il apparait à l'usage que c'est un peu brut de décoffrage... Le problème, entre autres, est que un évènement enregistré à 23h30 est verrouillé une demi heure après, c'est gênant... Donc je veux affiner ça avec du + 24H00 ou + O8h00 ou plus ou moins c'est à définir avec mon staff. D'où mon idée de passer par une fonction lancée à l'ouverture d'un formulaire, ce qui aurait l'avantage d'uniformiser la procédure pour tous les autres formulaires. Actuellement : - la fonction se lance bien. - la gestion du temps + n heures ça fonctionne. - le problème majeur est que la fonction ne récupère pas les dates et heures enregistrées dans le formulaire "appelant"... mais la fonction pouvant être appelée depuis moult forms, je ne peux pas nommer le formulaire en dur dans le code de la fonction. Il faut que la fonction sache aller piquer la date et l'heure quelque soit le form appelant. Là est mon big problème pour l'instant car ça je ne sais pas faire. En espérant voir été explicite.
__________________
|
|
|
00
|
|
|
#7 | ||
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 206 ![]() |
Salut,
Pourquoi comme le suggère Dolphy, Ne pas utiliser paramètres qui seront les contenus des zones de texte "DateEvenement" et "HeureEvenement": Exemple de fonction avec paramètres : Code :
Code :
Call Verrou(Me!DateEvenement, Me!HeureEvenement)
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
||
|
00
|
|
|
#8 |
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
bonsoir,
j'ai testé ça fonctionne bien, si l'heure courante est > à l'heure de verrouillage j'ai bien le retour par msgbox "enregistrement verrouillé"et dans le cas inverse "enregistrement éditable". pour la phase test c'est ok mais in fine, je voudrais par exemple appliquer locked = true + enabled = false sur les textbox du formulaire appelant. Ca je sais faire en designant dans le code le formulaire. Mais dans mon cas, la fonction pouvant etre appelee de n'importe quel autre formulaire, comment permettre à la fonction d'inhiber les champs du bon formulaire à la volée, sans qu'il soit désigné ?
__________________
|
|
|
00
|
|
|
#9 | |
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 206 ![]() |
Bonsoir,
Citation:
Sinon, comment faire référence aux zones de texte d'1 autre formulaire sans donner le nom du formulaire ?
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
|
|
00
|
|
|
#10 | |
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
Citation:
Actuellement, ça fonctionne en nommant le formulaire dans la fonction. * Je viens de me souvenir d'un code que j'avais utilisé pour gérer la fermeture automatique de la base de données en cas d'inactivité, je vais essayer de broder autour du : ActiveFormName = Screen.ActiveForm.Name
__________________
|
|
|
|
00
|
|
|
#11 | ||
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
bon alors voilà, dans ma fonction j'ai rajouté ça :
Code :
Comment remplacer la partie en rouge : Forms!test1.Infos.Caption = "azerty"
__________________
|
||
|
|
00
|
|
|
#12 | ||
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 206 ![]() |
ReBonsoir,
tu peux faire: Code :
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
||
|
00
|
|
|
#13 | ||
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
ce matin je reprends le flambeau et j'en suis là :
Code :
__________________
|
||
|
|
00
|
|
|
#14 |
|
Membre éprouvé
![]() Jean-Yves DUMASConsultant informatique Inscription : juin 2010 Messages : 325 ![]() |
Bonjour @rkane,
Petite question triviale : t'es tu d'abords assuré que ton formulaire sur lequel tu teste ta procédure est bien ouvert et actif ? Tu peux controler en mettant un point d'arrêt sur la ligne 11 et tester en debug.print ou ajourt un espion sur le Forms(ActiveFormName
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!si tout est OK, n'oubliez pas de cliquer sur
|
|
|
00
|
|
|
#15 |
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
Ben oui puisque j'appelle la fonction sur clic bouton depuis le formulaire
__________________
|
|
|
00
|
|
|
#16 | ||
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 206 ![]() |
Salut,
essaie avec: Code :
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
||
|
00
|
|
|
#17 |
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
yep, j'ai déjà essayé mais j'ai le msgbox d'erreur qui me dit :
"erreur d'exécution 338, propriété ou méthode non gérée par cet objet"
__________________
|
|
|
00
|
|
|
#18 | ||
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 206 ![]() |
Ouais bah bien sur une étiquette c'est un contrôle qui ne peut être verrouillé
Tu comprends, il faut sélectionner uniquement les zones de textes du formulaire en cours dans la boucle : essaie ca pour la boucle: Code :
A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
||
|
00
|
|
|
#19 | ||
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
bonjour User
désolé pour la boulette, je n'ai pas pensé que les étiquettes étaient prises en compte en tant que contrôles. ton code n'opère pas mais tu m'as mis sur la voie et avec ce code ça fonctionne bien. Code :
Mille mercis pour ce coup de pouce.
__________________
|
||
|
|
00
|
|
|
#20 | ||
|
Membre éclairé
![]() Patrick developpeur amateur dans mon cadre professionnel Inscription : juin 2006 Messages : 499 ![]() |
bonjour User
désolé pour la boulette, je n'ai pas pensé que les étiquettes étaient prises en compte en tant que contrôles. ton code n'opère pas mais tu m'as mis sur la voie et avec celui ci-dessous ça fonctionne bien. Je colle le code complet, si ça peut aider quelqu'un... Code :
Mille mercis pour ce coup de pouce.
__________________
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com