je suis moins sympa je la laisse bosserEnvoyé par ft035580
je suis moins sympa je la laisse bosserEnvoyé par ft035580
Salut christrabin,
Je pensais que nous allions nous dépatouiller du problème avec des exemples mais je m'apperçois qu'il n'en ai rien
Courage ........ nous entamons la 5e page.
Je vous dit un peu où j'en suis et je suis désolée...
Mon formulaire a beaucoup d'exigences et je ne suis pas la meilleure dans ce domaine...
Alors voilà les codes pour les arrêts planifiés, les blocages et les deux ensembles marchent :
Maintenant je m'attaque aux dates, ce qui est le plus délicat il me semble...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 If Me.q3Blocage And Not (Me.q3Planifié) Then Sql = Sql & "WHERE ARRET!Type = 'Blocage'" End If If Me.q3Planifié And Not (Me.q3Blocage) Then Sql = Sql & "WHERE ARRET!Type = 'Planifié'" End If If Me.q3Planifié And Me.q3Blocage Then Sql = Sql & "WHERE (ARRET!Type = 'Planifié' OR ARRET!Type = 'Blocage')" End If
Les dates toutes seules marchent maintenant je vais lier les dates et les arrêts....
Une petite question, en fait on doit faire toutes les possibilités possibles pour que le questionnaire marche bien ? Parce que si c'est ça je vais mettre beaucoup de temps à le finir...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 If q2Début And q2Fin Then Me.q2DateDébut.RowSource = "SELECT Date FROM ARRET;" Me.q2DateFin.RowSource = "SELECT Date FROM ARRET;" Me.q2DateDébut.Requery Me.q2DateFin.Requery Sql = Sql & "WHERE ARRET.Date >= [Forms]![Formulaire]![q2DateDébut] And ARRET.Date <= [Forms]![Formulaire]![q2DateFin]" End If If Me.q2Début And Not (Me.q2Fin) Then Sql = Sql & "WHERE ARRET!Date like '*" & Me.q2DateDébut & "*' " End If
Parce que ça c'est juste une partie... Heureusement après tout se ressemble, je vous embéterai plus quand ça sera finit....
Alors voilà ça marche !!!!!!
Mais je suis obligé de tous tous tapé à la main, il n'y aurai pas une autre façon : là ca va parce qu'il n'y a que 4 case à cocher mais en tout à la fin j'en aurai 21 en comptant celles là...
Alors je me vois très mal faire des if avec 21 conditions....
Parce que si je ne fais pas les Not ça ne marche pas...
Si vous avez des idées je suis preneuse....
MERCI à christrabin et à ft035580 de m'avoir aidée et supportée....
Le groupe d'option ne t'interresse pas ?Envoyé par lola06
Voilà le code final pour ceux que ça interesse....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133 Option Compare Database Private Sub Form_Load() Me.résultats.RowSource = "SELECT NuméroAuto, CodeSystème, Date, HeureDébut, Durée, Type, Caractéristique, CodeCause FROM ARRET;" Me.résultats.Requery End Sub Private Sub RefreshQuery() Dim Sql As String Sql = "SELECT NuméroAuto, CodeSystème, Date, HeureDébut, Durée, Type, Caractéristique, CodeCause FROM ARRET " '-------------------------------------------------------------------------------------------------------------------- If Me.q3Blocage And Not (Me.q3Planifié) And Not (Me.q2Début) And Not (Me.q2Fin) Then Sql = Sql & "WHERE ARRET!Type = 'Blocage'" End If '-------------------------------------------------------------------------------------------------------------------- If Me.q3Planifié And Not (Me.q3Blocage) And Not (Me.q2Début) And Not (Me.q2Fin) Then Sql = Sql & "WHERE ARRET!Type = 'Planifié'" End If '-------------------------------------------------------------------------------------------------------------------- If Me.q3Planifié And Me.q3Blocage And Not (Me.q2Début) And Not (Me.q2Fin) Then Sql = Sql & "WHERE (ARRET!Type = 'Planifié' OR ARRET!Type = 'Blocage')" End If '-------------------------------------------------------------------------------------------------------------------- If Me.q2Début And Not (Me.q2Fin) And Not (Me.q3Planifié) And Not (Me.q3Blocage) Then Sql = Sql & "WHERE ARRET!Date like '*" & Me.q2DateDébut & "*' " End If '-------------------------------------------------------------------------------------------------------------------- If Me.q2Début And Me.q2Fin And Not (Me.q3Planifié) And Not (Me.q3Blocage) Then Me.q2DateDébut.RowSource = "SELECT Date FROM ARRET;" Me.q2DateFin.RowSource = "SELECT Date FROM ARRET;" Me.q2DateDébut.Requery Me.q2DateFin.Requery Sql = Sql & "WHERE ARRET.Date >= [Forms]![Formulaire]![q2DateDébut] And ARRET.Date <= [Forms]![Formulaire]![q2DateFin]" End If '-------------------------------------------------------------------------------------------------------------------- If Me.q2Début And Me.q2Fin And Me.q3Planifié And Not (Me.q3Blocage) Then Me.q2DateDébut.RowSource = "SELECT Date FROM ARRET;" Me.q2DateFin.RowSource = "SELECT Date FROM ARRET;" Me.q2DateDébut.Requery Me.q2DateFin.Requery Sql = Sql & "WHERE ARRET.Type = 'Planifié' AND ARRET.Date >= [Forms]![Formulaire]![q2DateDébut] And ARRET.Date <= [Forms]![Formulaire]![q2DateFin]" End If '-------------------------------------------------------------------------------------------------------------------- If Me.q2Début And Me.q2Fin And Me.q3Blocage And Not (Me.q3Planifié) Then Me.q2DateDébut.RowSource = "SELECT Date FROM ARRET;" Me.q2DateFin.RowSource = "SELECT Date FROM ARRET;" Me.q2DateDébut.Requery Me.q2DateFin.Requery Sql = Sql & "WHERE ARRET.Type = 'Blocage' AND ARRET.Date >= [Forms]![Formulaire]![q2DateDébut] And ARRET.Date <= [Forms]![Formulaire]![q2DateFin]" End If '-------------------------------------------------------------------------------------------------------------------- If Me.q2Début And Me.q2Fin And Me.q3Blocage And Me.q3Planifié Then Me.q2DateDébut.RowSource = "SELECT Date FROM ARRET;" Me.q2DateFin.RowSource = "SELECT Date FROM ARRET;" Me.q2DateDébut.Requery Me.q2DateFin.Requery Sql = Sql & "WHERE (ARRET.Type = 'Blocage' OR ARRET.Type = 'Planifié' ) AND ARRET.Date >= [Forms]![Formulaire]![q2DateDébut] And ARRET.Date <= [Forms]![Formulaire]![q2DateFin]" End If '-------------------------------------------------------------------------------------------------------------------- Sql = Sql & ";" 'on affecte à la listbox 'résultats' l'instruction SQL Me.résultats.RowSource = Sql Me.résultats.Requery End Sub Private Sub q2Début_Click() If Me.q2Début = True Then Me.q2DateDébut.Visible = True Else Me.q2DateDébut.Visible = False End If RefreshQuery End Sub Private Sub q2DateDébut_AfterUpdate() RefreshQuery End Sub Private Sub q2DateFin_AfterUpdate() RefreshQuery End Sub Private Sub q2Fin_Click() If Me.q2Fin = True Then Me.q2DateFin.Visible = True Me.q2Début = True Else Me.q2DateFin.Visible = False End If RefreshQuery End Sub Private Sub q3Blocage_Click() RefreshQuery End Sub Private Sub q3planifié_Click() RefreshQuery End Sub Private Sub résultats_DblClick(Cancel As Integer) DoCmd.OpenForm "Formulaire1", acNormal, , "[NuméroAuto] = " & Me.résultats End Sub
En fait il faut que dans le formulaire on puisse choisir plusieurs options:
par exemple après je dois faire la cause des arrêts (Software, Hardware..), on dois pouvoir voir si on veut un seul ou plusieurs ensembles...
Je ne sais pas si je suis claire...?
géré 21 conditions avec des if 21 c'est l'usine à gaz...et le bug assuré
Le groupe d'option ou la liste déroulante non ??
Quand à la question, "Une petite question, en fait on doit faire toutes les possibilités possibles"
vaut mieux pour éviter d'avoir un bug. Du genre, tu as une liste avec 2 dates début et fin. mais que se passe t il si ton utilisateur met une date de fin antérieure à ta date de début ?
Exemple : début 01/01/05 et fin 01/01/03
Il faut alors gérer un test sur la date pour éviter cela ....Bon, je ne vais pas te décourager dans ce bel élan
Je vais déjà essayer de tout faire marcher avec des groupes d'otions pour éviter trop de conditions et tout simple et après je verrai si je peux faire autrement.
Si j'ai du mal pour les dates alors je reviendrais encore une fois ici.....
Merci de m'aider...
Salut,
Priviligie alors un système de liste(s) déroulante(s) voire des formulaires de formulaire.Envoyé par lola06
Salut,
je ne vois pas comment faire ce que tu as dit, est ce que le fait de faire des listes déroulantes va vraiment diminuer le nombre de conditions ?
Je ne comprend pas ce que tu entend par des formulaires de formulaires, des sous formulaires c'est ça ?
Merci d'essayer de m'éclairer je vais essayer d'avancer comme je peux...
Voilà c'est bon ça marche, j'ai écrit toutes les possibilités (très pratique le bloc note avec Remplacer par ... )
Donc mon sujet est résolu on va dire.
Merci à tous ceux qui m'ont aidée et qui m'ont permis de finir mon formulaire assez compliqué...
P.S: je ne met pas le code il y aurait trop de lignes...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager