Salut la francophonie.
J'ai fait un petit module qui récupère des valeurs de 2 tables pour produire des résultats dans une autre. J'ai fait un filtre de sélection pour ma méthode FindFirst/FindNext basé sur la valeur d'une chaîne de caractères, TampDie. Voici le code utile:
La valeur (Quatre) correspond à une constante = 4. La ligne problème est en gras.
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 Sub DAO_Resultats() 'Initialisation recordset et Tables Dim db As DAO.Database Dim rstTri As DAO.Recordset Dim rstDie As DAO.Recordset Dim rstRes As DAO.Recordset 'Déclaration variables Dim DenomFlowreel As Integer: Dim DenomGPI As Integer: Dim DenomVprod As Integer Dim Incr As Integer: Dim Id As Integer Dim SommeP As Single: Dim SommeRCP As Single: Dim SommeS2 As Single: Dim SommeGPI As Single Dim SommeVprod As Single: Dim SommeFlowreel As Single Dim IndiceMasse As Single: Dim IndiceVitesse As Single Dim TampDie As Variant: Dim TampDieFlow As Variant: Dim strDie As String: Dim TampTri As String 'Assignation base de données == courante Set db = CurrentDb() 'Assignation recordset aux tables de bdd Gravimétrique Set rstTri = db.OpenRecordset("tblTRI", dbOpenDynaset) Set rstDie = db.OpenRecordset("tblDIE") Set rstRes = db.OpenRecordset("tblRES") DenomFlowreel = 0 DenomGPI = 0 DenomVprod = 0 SommeRCP = 0 SommeP = 0 SommeS2 = 0 SommeGPI = 0 SommeVprod = 0 TampDie = Space(6) TampDieFlow = Space(4) TampTri = Space(6) rstTri.MoveFirst 'Boucle de parcours de tblTRI pour sommations While Not rstTri.EOF 'rstRes.MoveFirst rstDie.MoveFirst TampDie = rstTri(Quatre).Value strDie = "([tblTRI].[Die] LIKE '" & TampDie & "')" 'Boucle de sommation des valeurs du premier enregistrement de TblTRI et semblables 'selon Die rstTri.FindFirst strDie While Not rstTri.NoMatch
1 - Ça me donne erreur d'exécution 3070: "Le moteur ... ne reconnaît pas la valeur tblTRI.Die en tant que nom de champ ou expression correcte".
Le débogueur arrête à la ligne soulignée. Pourquoi?
J'ai essayé avec [Die] seulement, mais on dirait que la condition de recherche n'est pas reconnue.
2 - J'ai repiqué l'exemple d'un tutoriel et l'ai modifié, mais sans succès:
strDie = "Select * From [tblTRI] Where [Die] Like '*" & TampDie & "*'"
Ça donn erreur 3077: erreur de syntaxe. Pourquoi Seigneur??
3 - J'ai souligné en rouge les variables Variant et la variable de condition qui est un String (strDie). J'ai mis TampDie et TampDieFlow comme Variant car je fais des manips du type TampDie = TampDieFlow plus loin dans le code. Je ne peux pas faire ça si ce sont des String. Si je veux pouvoir copier un String dans un autre, quel est la méthode? Pourquoi Seigneur doux Jésus?
Que pasa? Merci à l'avance! Let's go la France demain contre la Suisse!!!! (sans offense, mais bon, le Québec, ça a déjà été la Nouvelle-France).
Partager