Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/01/2012, 13h15   #1
Invité de passage
 
Homme Patrick
Inscription : décembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 13
Points : 3
Points : 3
Par défaut Insertion date avec un bouton

Bonjour,

Je voudrais savoir comment je peux faire pour insérer à côté du champ date de mon formulaire (Nouveau Bouzat Patrick) :
  1. la date du jour en cliquant sur un bouton à côté de la date du formulaire ;
  1. et un autre bouton pour choisir la date voulu avec un petit calendrier qui s’ouvre à côté.

Merci.
patb1212 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 09h29   #2
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 223
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 223
Points : 9 926
Points : 9 926
Envoyer un message via Skype™ à Domi2
Bonjour,

Regarde cette contribution d'Arkham46 : Affichez un calendrier de saisie sous une zone de texte.

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 13h13   #3
Invité de passage
 
Homme Patrick
Inscription : décembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 13
Points : 3
Points : 3
Bonjour Domi2
Désolé pour ne pas avoir poster au bon endroit,
Dans ton exemple je comprend pour copier le texte dans un module nommé (MCalendar mais après sa ce complique pour le reste)
Quelqu’un pourrai me le placer sur mon exemple pour que je puisse mieux comprendre.
Merci
patb1212 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 17h22   #4
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 223
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 223
Points : 9 926
Points : 9 926
Envoyer un message via Skype™ à Domi2
Bonjour,

Plusieurs choses.

D'abord, une erreur très fréquemment rencontrée. Il ne faut jamais nommer un champ de table ou un objet ou contrôle Access avec un mot "réservé", ce qui est le cas de "Date". Dans ta table, renomme ce champ "DateTache".

Puis tu ouvres ton formulaire en mode modification, tu renommes ton champ "Date" en "txtDateTache" et ton bouton calendrier en "cmdDateTache".
Dans l'évènement "Sur clic" de ce dernier, tu colles ce code :

Code :
1
2
3
4
5
6
7
8
9
10
11
Private Sub cmdDateTache_Click()
 
    Dim lDate As String
 
    lDate = DisplayCalendar(Me.txtDateTache, "Choisir une date" & vbCrLf & "Test 2ème ligne", _
                                     IIf(IsDate(Me.txtDateTache), Me.txtDateTache, Now), _
                                     "Comic sans MS", 8, True, vbBlack, _
                                     vbYellow, "arial", 10)
    If Not lDate = "" Then Me.txtDateTache.Value = lDate
 
End Sub
Enfin, tu insères un nouveau module standard (menu Insertion ==> Module) que tu peux par exemple appeler "basCalendrier" et tu colles simplement le code d'Arkham46 dedans.

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2012, 19h31   #5
Invité de passage
 
Homme Patrick
Inscription : décembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 13
Points : 3
Points : 3
Salut Domi2
Et merci sa fonctionne c'est super.
J'ai une dernière demande dans mon formulaire donc qui enregistre dans la table fonctionne.
Mais quand je clique sur enregistrer sa efface la date ( date du jour) pour une nouvelle entrer et je voudrai la garder jusqu’à' a la fermeture du formulaire j'ai plusieurs enregistrement avec la même date.
J'ai été clair?
Merci
patb1212 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2012, 17h20   #6
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 223
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 223
Points : 9 926
Points : 9 926
Envoyer un message via Skype™ à Domi2
Bonjour,

Il te faut d'abord déplacer la variable lDate afin que sa portée soit le module du formulaire et pas seulement la procédure "Private Sub cmdDateTache_Click()". Voir ce tutoriel pour toutes informations. Fondements sur les variables et les constantes.

Tu dois donc la placer dans la section "Déclaration" du module. Nouveau code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Option Compare Database
Option Explicit
 
Dim lDate As String
 
Private Sub cmdDateTache_Click()
 
    lDate = DisplayCalendar(Me.txtDateTache, "Choisir une date" & vbCrLf & "Test 2ème ligne", _
                                     IIf(IsDate(Me.txtDateTache), Me.txtDateTache, Now), _
                                     "Comic sans MS", 8, True, vbBlack, _
                                     vbYellow, "arial", 10)
    If Not lDate = "" Then Me.txtDateTache.Value = lDate
 
End Sub
Ensuite, lorsque tu crées ton nouvel enregistrement, il te suffit de modifier la valeur de ta zone de texte en ajoutant une ligne de code : Me.txtDateTache.Value = lDate.

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 18h58   #7
Invité de passage
 
Homme Patrick
Inscription : décembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 13
Points : 3
Points : 3
Bonsoir Domi2
Je suis pas doué je n’ai pas tout compris sa marche pas.
Y a-t-il une explication avec une marche à suivre plus explicite
Désolé.
patb1212 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 19h02   #8
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 223
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 223
Points : 9 926
Points : 9 926
Envoyer un message via Skype™ à Domi2
Bonsoir,

Peux-tu poster la totalité du code de ton formulaire (toutes les procédures) ?

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2012, 21h04   #9
Invité de passage
 
Homme Patrick
Inscription : décembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Localisation : France

Informations forums :
Inscription : décembre 2011
Messages : 13
Points : 3
Points : 3
Bonsoir Domi2
Voila le code.
A l'ouverture du formulaire on a la date du jour.
Ensuite si tu change la date, après avoir cliqué sur enregistrer on revient sur la date du jour.
Or il faut pouvoir faire plusieurs enregistrements avec une date antérieure.
Mais il faut pour autant ouvrir le formulaire avec toujours la date du jour.
Merci.
patb1212 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 09h16   #10
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 223
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 223
Points : 9 926
Points : 9 926
Envoyer un message via Skype™ à Domi2
Bonjour,

Ce n'est pas ton application que je désire voir, mais iniquement le code (toutes les procédure) de ton formulaire.

Tu copies ton code et tu le colles dans ton prochaine message, en l'entourant avec les balises.

Citation:
Ajout des balises de code (sélection du code + # au dessus de la fenêtre de rédaction du message)
Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 09h21   #11
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 30
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : avril 2010
Messages : 30
Points : 13
Points : 13
A ok désolé je n'avais pas compris.
Voici le code de mon formulaire.
Merci.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Option Compare Database
 
Private Sub Commande12_Click()
On Error GoTo Err_Commande12_Click
 
 
 
Exit_Commande12_Click:
    Exit Sub
 
Err_Commande12_Click:
    MsgBox Err.Description
    Resume Exit_Commande12_Click
 
End Sub
 
 
Option Compare Database
 
    Private Sub CmbDetail_Click()
    Dim lDate As String
    lDate = DisplayCalendar(Me.Date, "Choisir une date" & vbCrLf & "Test 2ème ligne", _
                                     IIf(IsDate(Me.Date), Me.Date, Now), _
                                     "Comic sans MS", 8, True, vbBlack, _
                                     vbYellow, "arial", 10)
    If Not lDate = "" Then Me.TxtDetail.Value = lDate
End Sub
 
 
Private Sub Enregistrer_Click()
nb = Nz(DSum("TPS", "Bouzat Patrick", "[Date]=" & Format(Me.Date, "\#m/d/yyyy\#")), 0)
Select Case DatePart("w", Me.Date)
    Case 6: 'vendredi
        If (nb + TPS) >= 8 Then MsgBox "Pour le vendredi le total des heures ne doit pas dépasser 7h" & vbCrLf & (6 - nb) & " max": Exit Sub
    Case Else
        If (nb + TPS) >= 9 Then MsgBox "Pour les jours du Lundi au jeudi le total des heures ne doit pas dépasser 8h" & vbCrLf & (7 - nb) & " max": Exit Sub
End Select
 
 
On Error GoTo Err_Enregistrer_Click
 
    DoCmd.GoToRecord , , acNewRec
    Me.[Bouzat_Patrick_Requête_jour_sous_formulaire].Requery
    Me.[Bouzat Patrick Requête mois sous-formulaire].Requery
 
Exit_Enregistrer_Click:
    Exit Sub
 
Err_Enregistrer_Click:
    MsgBox Err.Description
    Resume Exit_Enregistrer_Click
 
End Sub
 
 
 
 
Private Sub Commande19_Click()
On Error GoTo Err_Commande19_Click
 
 
    DoCmd.GoToRecord , , acLast
 
Exit_Commande19_Click:
    Exit Sub
 
Err_Commande19_Click:
    MsgBox Err.Description
    Resume Exit_Commande19_Click
 
End Sub
 
 
Private Sub Commande76_Click()
On Error GoTo Err_Commande76_Click
 
    Dim stDocName As String
 
    stDocName = "Date du jour"
    DoCmd.RunMacro stDocName
 
Exit_Commande76_Click:
    Exit Sub
 
Err_Commande76_Click:
    MsgBox Err.Description
    Resume Exit_Commande76_Click
 
End Sub
Private Sub Commande81_Click()
Dim lDate As String
 
    lDate = DisplayCalendar(Me.txtDateTache, "Choisir une date" & vbCrLf & "Test 2ème ligne", _
                                     IIf(IsDate(Me.txtDateTache), Me.txtDateTache, Now), _
                                     "Comic sans MS", 8, True, vbBlack, _
                                     vbYellow, "arial", 10)
    If Not lDate = "" Then Me.txtDateTache.Value = lDate
 
End Sub
patb12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 09h46   #12
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 223
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 223
Points : 9 926
Points : 9 926
Envoyer un message via Skype™ à Domi2


Il faudra peut-être envisager de faire un peu de "ménage", ça ne passerait même pas à la compilation...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Option Compare Database
Option Explicit 'A rajouter, impose la déclaration explicite de toutes les variables
 
Dim lDate As String 'Variable déplacée de la procédure CmbDetail_Click()
 
Private Sub CmbDetail_Click()
 
    'Dim lDate As String <== Variable à supprimer dans cette procédure
    lDate = DisplayCalendar(Me.Date, "Choisir une date" & vbCrLf & "Test 2ème ligne", _
                                     IIf(IsDate(Me.Date), Me.Date, Now), _
                                     "Comic sans MS", 8, True, vbBlack, _
                                     vbYellow, "arial", 10)
    If Not lDate = "" Then Me.TxtDetail.Value = lDate
End Sub
 
Private Sub Enregistrer_Click()
nb = Nz(DSum("TPS", "Bouzat Patrick", "[Date]=" & Format(Me.Date, "\#m/d/yyyy\#")), 0)
Select Case DatePart("w", Me.Date)
    Case 6: 'vendredi
        If (nb + TPS) >= 8 Then MsgBox "Pour le vendredi le total des heures ne doit pas dépasser 7h" & vbCrLf & (6 - nb) & " max": Exit Sub
    Case Else
        If (nb + TPS) >= 9 Then MsgBox "Pour les jours du Lundi au jeudi le total des heures ne doit pas dépasser 8h" & vbCrLf & (7 - nb) & " max": Exit Sub
End Select
 
On Error GoTo Err_Enregistrer_Click
 
    DoCmd.GoToRecord , , acNewRec
    Me.txtDateTache.Value = lDate '<== Modification de la date
    Me.[Bouzat_Patrick_Requête_jour_sous_formulaire].Requery
    Me.[Bouzat Patrick Requête mois sous-formulaire].Requery
 
Exit_Enregistrer_Click:
    Exit Sub
 
Err_Enregistrer_Click:
    MsgBox Err.Description
    Resume Exit_Enregistrer_Click
 
End Sub
Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 10h46   #13
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 30
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : avril 2010
Messages : 30
Points : 13
Points : 13
Merci.
Oui merci pour le ménage.
Par contre mon bouton ouverture du calendrier ne marche plus ?
patb12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 10h51   #14
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 223
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 223
Points : 9 926
Points : 9 926
Envoyer un message via Skype™ à Domi2
Comment s'appelle ton bouton ?
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 11h00   #15
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 30
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : avril 2010
Messages : 30
Points : 13
Points : 13
Mon bouton s'appelle Commande81_Click()
Mais j'ai plein d'erreur quand je clique sur enregistrer.
Je vais être obliger de laisser mon code pas propre.
Lol..
patb12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 11h19   #16
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 223
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 223
Points : 9 926
Points : 9 926
Envoyer un message via Skype™ à Domi2
Il faudrait surtout commencer à lire un ou deux tutos, dont notamment celui que je t'ai déjà indiqué sur les variables et celui-ci : Descriptif des conventions typographiques du code Visual Basic.

Cela t'évitera bien des problèmes pour la suite, et surtout bien des désillusions. Maintenant, tu peux bien sûr laisser "ton code pas propre" et qui ne compile pas, mais je te mets au défi de faire de la maintenance facilement sur le dit code d'ici 15 jours, parce que tu ne te souviendra même plus comment ton bouton de l'ouverture du calendrier s'appelle. "Commande81" ou "CmbDetail" ?

Citation:
Puis tu ouvres ton formulaire en mode modification, tu renommes ton champ "Date" en "txtDateTache" et ton bouton calendrier en "cmdDateTache".
Si tu avais suivi cette recommandation, cela fonctionnerait déjà, et on aurait évité quatre messages inutiles.

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 11h46   #17
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 30
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : avril 2010
Messages : 30
Points : 13
Points : 13
Oui bien sur je vais essayer de me débrouiller, avec vos recommandations très utiles pour un débutant comme moi.
Désolé d'avoir pris votre temps.
Merci.
patb12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 12h01   #18
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 223
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 223
Points : 9 926
Points : 9 926
Envoyer un message via Skype™ à Domi2
Tu n'as qu'à renommer correctement ton bouton, recréer l'événement Sur clic (il portera un nouveau nom, coller le code d'appel du calendrier dedans et supprimer les deux autres. Tu y verra déjà nettement plus clair.

Ensuite, en tête de ton code, tu as Option Compare Database. Rajoutes Option Explicit, de façon à obtenir ceci :

Code :
1
2
Option Compare Database
Option Explicit
Et à ligne 18 du code que tu as posté précédemment, tu as une deuxième fois Option Compare Database.

A supprimer, cela te provoquera une erreur.

Quand tu auras déjà fait cela, si cela ne fonctionne toujours pas, reposte ton code.
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 14h42   #19
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 30
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : avril 2010
Messages : 30
Points : 13
Points : 13
Voila le code plus clair.. Enfin je pense.
La date revient toujours a la date du jour après le clic sur l'enregistrement, mais c'est pas grave je vais te laisser et fermer la discussion.
Je te remercie de ton dévouement tu ma bien rendu service
Encore merci Domi2

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
Option Compare Database
 
Private Sub cmdDateTache_Click()
Dim lDate As String
    lDate = DisplayCalendar(Me.txtDateTache, "Choisir une date" & vbCrLf & "Test 2ème ligne", _
                                     IIf(IsDate(Me.txtDateTache), Me.txtDateTache, Now), _
                                     "Comic sans MS", 8, True, vbBlack, _
                                     vbYellow, "arial", 10)
    If Not lDate = "" Then Me.txtDateTache.Value = lDate
End Sub
 
Private Sub Enregistrer_Click()
nb = Nz(DSum("TPS", "Bouzat Patrick", "[DateTache]=" & Format(Me.txtDateTache, "\#m/d/yyyy\#")), 0)
Select Case DatePart("w", Me.txtDateTache)
    Case 6: 'vendredi
        If (nb + TPS) >= 8 Then MsgBox "Pour le vendredi le total des heures ne doit pas dépasser 7h" & vbCrLf & (6 - nb) & " max": Exit Sub
    Case Else
        If (nb + TPS) >= 9 Then MsgBox "Pour les jours du Lundi au jeudi le total des heures ne doit pas dépasser 8h" & vbCrLf & (7 - nb) & " max": Exit Sub
End Select
 
 
On Error GoTo Err_Enregistrer_Click
 
    DoCmd.GoToRecord , , acNewRec
    Me.[Bouzat_Patrick_Requête_jour_sous_formulaire].Requery
    Me.[Bouzat Patrick Requête mois sous-formulaire].Requery
 
Exit_Enregistrer_Click:
    Exit Sub
 
Err_Enregistrer_Click:
    MsgBox Err.Description
    Resume Exit_Enregistrer_Click
 
End Sub
patb12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 15h01   #20
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 223
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 223
Points : 9 926
Points : 9 926
Envoyer un message via Skype™ à Domi2
Ok,

Alors :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Option Compare Database
Option Explicit 'Déclaration explicite des variables
 
Dim lDate As String
 
Private Sub cmdDateTache_Click()
'Dim lDate As String ==> déplacé dans la section "Déclaration" du module
    lDate = DisplayCalendar(Me.txtDateTache, "Choisir une date" & vbCrLf & "Test 2ème ligne", _
                                     IIf(IsDate(Me.txtDateTache), Me.txtDateTache, Now), _
                                     "Comic sans MS", 8, True, vbBlack, _
                                     vbYellow, "arial", 10)
    If Not lDate = "" Then Me.txtDateTache.Value = lDate
End Sub
 
Private Sub Enregistrer_Click()
nb = Nz(DSum("TPS", "Bouzat Patrick", "[DateTache]=" & Format(Me.txtDateTache, "\#m/d/yyyy\#")), 0)
Select Case DatePart("w", Me.txtDateTache)
    Case 6: 'vendredi
        If (nb + TPS) >= 8 Then MsgBox "Pour le vendredi le total des heures ne doit pas dépasser 7h" & vbCrLf & (6 - nb) & " max": Exit Sub
    Case Else
        If (nb + TPS) >= 9 Then MsgBox "Pour les jours du Lundi au jeudi le total des heures ne doit pas dépasser 8h" & vbCrLf & (7 - nb) & " max": Exit Sub
End Select
 
 
On Error GoTo Err_Enregistrer_Click
 
    DoCmd.GoToRecord , , acNewRec
    Me.txtDateTache.Value = lDate 'Modification de la date
    Me.[Bouzat_Patrick_Requête_jour_sous_formulaire].Requery
    Me.[Bouzat Patrick Requête mois sous-formulaire].Requery
 
Exit_Enregistrer_Click:
    Exit Sub
 
Err_Enregistrer_Click:
    MsgBox Err.Description
    Resume Exit_Enregistrer_Click
 
End Sub
J'ai ajouté une ligne 2, une ligne en 4 (la même que celle que j'ai mise en remarque à la ligne 7) et ajouté une ligne en 28.

Est-ce que cela fonctionne mieux ?
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h25.


 
 
 
 
Partenaires

Hébergement Web