Bonjour,
J'ai un petit soucis qui me chagrine car je ne comprends pas sa raison d'être.
Voici mon code:
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 Dim Rame As String Dim Rame2 As String Dim Rame3 As String Dim Rame4 As String SQL_Rame = "SELECT rentrée.Rame FROM rentrée GROUP BY rentrée.rame HAVING (rentrée.rame <> """" )" Set rs_SQL_Rame = CurrentDb.OpenRecordset(SQL_Rame) If Not rs_SQL_Rame.EOF Then rs_SQL_Rame.MoveLast Z = rs_SQL_Rame.RecordCount rs_SQL_Rame.MoveFirst Do While Not rs_SQL_Rame.EOF Rame = rs_SQL_Rame("Rame").Value Rame2 = Right(Rame, 1) If Rame2 = "A" Or Rame = "D" Then Rame3 = Replace(Rame, Rame2, "") SQL_Rame2 = "SELECT [Parc Z2N].Rame_Complète" SQL_Rame2 = SQL_Rame2 & " FROM [Parc Z2N]" SQL_Rame2 = SQL_Rame2 & " GROUP BY [Parc Z2N].Rame_Complète, [Parc Z2N].série, [Parc Z2N].rame" SQL_Rame2 = SQL_Rame2 & " HAVING ([Parc Z2N].rame = '" & Rame3 & "' AND [Parc Z2N].série = '" & Z20500 & "') " Set rs_SQL_Rame2 = CurrentDb.OpenRecordset(SQL_Rame2) If Not rs_SQL_Rame2.EOF Then rs_SQL_Rame2.MoveLast y = rs_SQL_Rame2.RecordCount rs_SQL_Rame2.MoveFirst Do While Not rs_SQL_Rame2.EOF Rame4 = rs_SQL_Rame2("Rame_Complète").Value DoCmd.RunSQL "UPDATE rentrée SET rentrée.Rame = '" & Rame4 & "' " rs_SQL_Rame2.MoveNext Loop Else End If Else End If rs_SQL_Rame.MoveNext Loop Else End If
Durant ce code, j'effectue la requête suivante:
Et puis je lance ma routine .... aucun soucis jusqu'à un cas concerné:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SQL_Rame2 = "SELECT [Parc Z2N].Rame_Complète" SQL_Rame2 = SQL_Rame2 & " FROM [Parc Z2N]" SQL_Rame2 = SQL_Rame2 & " GROUP BY [Parc Z2N].Rame_Complète, [Parc Z2N].série, [Parc Z2N].rame" SQL_Rame2 = SQL_Rame2 & " HAVING ([Parc Z2N].rame = '" & Rame3 & "' AND [Parc Z2N].série = '" & Z20500 & "') " Set rs_SQL_Rame2 = CurrentDb.OpenRecordset(SQL_Rame2)
Rame = 01A
Rame2 = A
Rame3 = 01
et là, lors de l'execution de cette requête, aucun résultat ne m'est renvoyé, alors qu'il devrait y en avoir un !
Alors ensuite, je décide de passer par le constructeur de requête, et là il me renvoie bien ce fameux résultat.
Pourquoi cette incohérence ?
J'avais pensé à un problème de type de variable (notamment Rame3 et [Parc Z2N].Rame, mais les deux sont bien en texte).
Alors une petite idée ?
Merci d'avance ?
EDIT: J'ai trouvé .... c'est le Z20500 qui est mal syntaxé, faute bête et méchante de la part d'un type qui n'a pas l'habitude de regarder là où il faut ...
Il fallait que j'écrive ""Z20500"" et non pas '" & Z20500 & "'
Partager