Bonjour à tous,

J'ai une requête ajout en SQL qui va chercher les infos dans un formulaire et sous-formulaire.

Lorqu'il y a qu'un enregistrement dans mon sous-formulaire cela me convient par contre lorsqu'il y en a 2 ou trois j'ajoute dans ma table que le dernier hors je voudrais ajouter dans ma table les 2 ou trois enregistrements.

Voici le code actuel de ma requête SQL (requête5)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
INSERT INTO Curatif ( ID_RNC, ac_curative )
SELECT Forms.f_temp2.iddéfinitif AS numrnc, Forms.f_temp2.SF_curatiftempo.Form.ac_curative AS Actiondemandée;
.

J'ai essayé avec du code VBA en plus de la requête
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
Function enregistrement_dans_données()
Dim db As Database
Dim sql As String
Dim Rs20 As DAO.Recordset
Dim qfd20 As DAO.QueryDef
Dim n20 As String
Dim t20 As String
Dim ncd20 As String
 
DoCmd.SetWarnings False ' pour ne pas avoir de message a chaque ajout
 
'code pour activer requête
Set qfd20 = CurrentDb.QueryDefs("requête5")
 
'ouvre le recordset basé sur la requête
Set Rs20 = qfd20.OpenRecordset
 
'Vérifie s'il y a des enregistrements dans le Recordset pour éviter message d'erreur
If Rs20.BOF = True And Rs20.EOF = True Then GoTo line31
 
'stocke dans les variables les données de la table sélectionnée en fonction de la requête
Rs20.MoveFirst
While Not Rs20.EOF
    With Rs20
        n20 = .Fields("numrnc").Value
        t20 = .Fields("Actiondemandée").Value
 
    End With
 
        Rs20.MoveNext
Wend
DoCmd.SetWarnings True
 
line31:
End Function
Mais chaque fois j'obtiens le message suivant
Erreur exécution code 3061. Trop peu de paramètres. 2 attendus
Une petite idée ?