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...
J'ai tenté ça...
Mais ça ne marche pas... Il me demande un paramètre (?), puis met à jour 0 lignes !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 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
Merci de m'aider à y voir plus clair
J'ai aussi essayé ça :
C'est toujours pas bon !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 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
Ibill
Partager