Access - pb remplacement valeur dans subform

Résolu
ibill Messages postés 4 Date d'inscription   Statut Membre -  
ibill Messages postés 4 Date d'inscription   Statut Membre -
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. ibill Messages postés 4 Date d'inscription   Statut Membre
     
    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 :)
    0
    1. ibill Messages postés 4 Date d'inscription   Statut Membre
       
      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...
      0
  2. ibill Messages postés 4 Date d'inscription   Statut Membre
     
    Pour au final en arriver tout simplement à :

    Me.IDZONE = "non affecté"
    Me.Requery
    
    0