Access - pb remplacement valeur dans subform

Résolu
Bonjour,

Je souhaite par l'intermédiaire d'un bouton de commande dans un sous formulaire remplacer une valeur dans un champ, lui même lié à la table correspondante.

La base :
T_ZONES est la table des zones (qui sont en fait des circonscriptions scolaires) identifiées par IDZONE
T_ECOLES est la table des écoles identifiées par IDECOL, et liée à T_ZONES par le champ IDZONE (présent dans les 2 tables).
Relation de 1 à Plusieurs (Une zone peut contenir plusieurs écoles), intégrité référentielle et mise à jour en cascade...

Côté formulaires :
F_ZONES est le formulaire de consultation générale, contenant lui même un sous-formulaire S_ECOLES.

C'est sur le sous formulaire que j'ai mis notamment un bouton 'cmdSupZone' censé remplacer la valeur du champ IDZONE du sous-formulaire S_ECOLES, mettant dans le champ la valeur "non affecté".
L'école ainsi changée n'apparaîtrait plus dans le sous-formulaire, et la valeur "non affecté" devrait se retrouver dans la la table T_ECOLE...

Je suis un peu perdu, si quelqu'un peut m'aider un peu pour mettre au point la procédure...

Ibill
Configuration: Windows XP
Firefox 2.0.0.14

2 réponses

  1. Pour au final en arriver tout simplement à :

    Me.IDZONE = "non affecté"
    Me.Requery
    
    1. Première tentative...

      Private Sub cmdSupZone_Click()
      Dim SQL As String
      SQL = "UPDATE T_ZONES INNER JOIN T_ECOLES "
      SQL = SQL + "ON T_ZONES.IDZONE = T_ECOLES.IDZONE "
      SQL = SQL + "SET T_ECOLES.IDZONE = 'non affecté'"
      SQL = SQL + " WHERE ((([Formulaires]![F_ECOLES]![IDECOL])"
      SQL = SQL + "=[T_ECOLES]![IDECOL]));"
      DoCmd.RunSQL SQL
      End Sub

      Mais ça ne marche pas... Il me demande un paramètre (?), puis met à jour 0 lignes !

      Merci de m'aider à y voir plus clair :)
      1. J'ai aussi essayé ça :

        Private Sub cmdSupZone_Click()
        Dim DB As DAO.Database
        Dim RS As DAO.Recordset
        Set DB = CurrentDb
        Set RS = DB.OpenRecordset("ECOLES", dbOpenDynaset)

        RS.Edit
        RS("IDZONE") = "non affecté"
        RS.Update
        RS.Requery
        Set RS = Nothing
        Set DB = Nothing
        End Sub

        C'est toujours pas bon !!

        Please help...