Rechercher : dans
Par :

Access - pb remplacement valeur dans subform

Dernière réponse le 14 mai 2008 à 13:11:40 ibill, le 10 mai 2008 à 16:10:49 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « access pb remplacement valeur dans subform » dans :
Manipulation de données - Recherche et remplacement VoirRecherche et remplacement Les algorithmes de remplacement permettent de remplacer tous les éléments d’un conteneur vérifiant une propriété particulière par un autre élément dont la valeur doit être fournie en argument. Les éléments devant être...

1

ibill, le 10 mai 2008 à 17:34:45

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 :)

Répondre à ibill

2

ibill, le 13 mai 2008 à 11:05:30

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...

Répondre à ibill

3

 ibill, le 14 mai 2008 à 13:11:40

Pour au final en arriver tout simplement à :

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

Répondre à ibill