Comment utiliser la case à cocher dans un sous-formulaire (code vba)

Signaler
Messages postés
1
Date d'inscription
mercredi 16 mai 2012
Statut
Membre
Dernière intervention
16 mai 2012
-
Bonjour à tous!
Ma préoccupation est la suivante:

j'ai une Table GARANTIE qui comprend les champs suivants: cod_gartie,lib_gartie,choix,mt_gartie_an.
A cette table j'ai lié un sous-formulaire.
Après saisie de certaines informations dans le formulaire Père (informations liées à des requêtes), je dois obtenir après click dans la case à cocher (choix) du sous-formulaire, le montant d'une garantie bien déterminée dans le champ mt_gartie_an.

le problème est que lorsque je sélectionne les critères dans le formulaire Père, et que je clique sur n'importe quelle case à cocher du sous-formulaire le montant de la garantie (mt_gartie_an) apparait uniquement au niveau de la première ligne du sous-formulaire, pourtant chaque garantie est dotée d'un code, et que normalement le montant de la garantie devrait s'afficher sur la même ligne que son code.
*vous verrez mentionnée une table TARIF, c'une une table de paramètre.

je vous donne ici un extrait de mon code:

Private Sub choix_Click()
Dim bd   As Database
Dim req  As Recordset
Dim req1 As Recordset
Dim req2 As Recordset
Dim req3 As Recordset

Set bd = DBEngine.Workspaces(0).OpenDatabase("D:\claverbase_(sauvegarde)_VS2_Backup_11_04_2012")
 
    Set req bd.OpenRecordset(" Select * from TARIF where cod_catg_tarif'" & Forms![PROPOSITION DE PRIME]![Modifiable161] & "' and cod_scatg_tarif ='" & Forms![PROPOSITION DE PRIME]![Modifiable165] & "' and cod_puissance = '" & Forms![PROPOSITION DE PRIME]![Modifiable210] & "' and cod_zone_tarif ='" & Forms![PROPOSITION DE PRIME]![Modifiable135] & "'")
    
    Set req1 = bd.OpenRecordset(" Select * from GARANTIE   ")
    Set req2 bd.OpenRecordset(" select cod_gartie, cod_gartie_tarif from GARANTIE,TARIF where cod_gartie cod_gartie_tarif GROUP BY cod_gartie")
    If req1.RecordCount > 0 Then
    req1.MoveFirst
     While Not req1.EOF
      req1.Edit
      req1.Fields("mt_gartie_an") = 0
      req1.Update
      req1.MoveNext
     Wend
      req1.Requery
    End If

    req1.MoveFirst
    If choix.Value = True Then
       If req.Fields("cod_gartie_tarif") = req1.Fields("cod_gartie") Then
    req1.Edit
         req1.Fields("mt_gartie_an") = req.Fields("mt_gart_tarif")
         req1.Update
    req1.Requery
       End If
    ElseIf choix.Value = False Then
    req1.Edit
    req1.Fields("mt_gartie_an") = 0
    req1.Update
    req1.MoveNext
    req1.Requery
    End If
   
    
    Set req3 bd.OpenRecordset(" Select * from TARIF where cod_catg_tarif'" & Forms![PROPOSITION DE PRIME]![Modifiable161] & "' and cod_scatg_tarif ='" & Forms![PROPOSITION DE PRIME]![Modifiable165] & "' and cod_puissance = '" & Forms![PROPOSITION DE PRIME]![Modifiable210] & "' and cod_zone_tarif ='" & Forms![PROPOSITION DE PRIME]![Modifiable135] & "'")
    req3.Requery

End Sub


Merci pour votre compréhension et pour votre aide!