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:
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
Voici les quelques points qui me pose problème:

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