Access - pb remplacement valeur dans subform

Résolu/Fermé
ibill Messages postés 4 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 14 mai 2008 - 10 mai 2008 à 16:10
ibill Messages postés 4 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 14 mai 2008 - 14 mai 2008 à 13:11
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

2 réponses

ibill Messages postés 4 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 14 mai 2008
10 mai 2008 à 17:34
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
ibill Messages postés 4 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 14 mai 2008
13 mai 2008 à 11:05
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
ibill Messages postés 4 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 14 mai 2008
14 mai 2008 à 13:11
Pour au final en arriver tout simplement à :

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