Bonjour je viens solliciter votre attention car j'ai remarqué quelques mauvais points dans mon projet aux-quels je ne trouve pas de réponses, je dois mettre à jour une table en fonction des champs de mon formulaire( Une zone de texte, une liste et un bouton).
Voici mon code:
Voici les quelques points qui me pose problème:
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 Dim rst As DAO.Recordset Dim rst2 As DAO.Recordset Dim plan As String Dim zone As String Dim str1 As String Dim str2 As String Dim SQL As String zone = Texte312.Value plan = Modifiable297.Value 'Ici on selectionne l'ID correspondant au nom de plan dans la table DRAWINGLIST Set rst = CurrentDb.OpenRecordset( _ "SELECT [DRAWINGID] FROM [DRAWINGLIST] WHERE [NAME] = 'PLP1305143-A1'", _ dbOpenSnapshot) ' Problème n°1 ici str1 = rst("DRAWINGID") MsgBox "L'ID est " & str1 rst.Close Set rst = Nothing 'Ici on selectionne les ID correspondant au numéro de plan sélectionné précédement Set rst2 = CurrentDb.OpenRecordset( _ "SELECT [ID] FROM [COMPONENTS] WHERE [DRAWINGID] = " & CStr(str1) & "", _ dbOpenSnapshot) str2 = rst2("ID") MsgBox "L'ID est " & str2 With rst2 'Faire des actions sur le recordset ' Trouver première occurrence Do While Not .NoMatch 'Probleme n°2 ici SQL = "UPDATE SOLODATA SET SOLODATA.TAG1=zone where SOLODATA.SOLODATALINK=str2" DoCmd.RunSQL SQL Loop End With 'str2 = rst2("ID") MsgBox "L'ID est " & str2 rst2.Close Set rst2 = Nothing
1- Dans mon premier recorset je suis obligé de rentrer une valeur en dur ('PLP1305143-A1') sinon une erreur survient: "Type de données incompatible dans l'expression du critère".
2- Probleme majeur: je ne sais pas vraiment comment modifier tout les champs concerné par mon 2eme recorset, actuellement il modifie juste le premier champs concerné.
3- Lors de l'éxécution une fenetre s'ouvre redemandant la valeur de ma variable "zone" et de "str2" ce qui est embetant à remplir pour des milliers de champs concerné.
merci d'avance, cordialement
Partager