A voir également:
- Suppression de données dans une table access
- Table ascii - Guide
- Table des matières word - Guide
- Forcer suppression fichier - Guide
- Effacer les données de navigation - Guide
- Reinstaller windows sans perte de données - Guide
11 réponses
Utilisateur anonyme
4 juin 2004 à 08:47
4 juin 2004 à 08:47
Salut,
Pour résoudre ton problème tu as deux possibilités:
1) Via le diagramme de relation, tu précises, pour chaque relation, que l'intégrité référentielle doit être préservée. Cela signifie que si tu suprime un enregistrement dans une table "mère", tous les éléments correspondant dans les tables "filles" seront aussi suprimé. Pour ce faire, tu double click sur le lien (il faut bien viser).
2) Tu codes en VBA ce que doit faire ton bouton.
Exemple:
Rien n'est plus dangereux qu'une idée quand on a
qu'une idée :-)
Pour résoudre ton problème tu as deux possibilités:
1) Via le diagramme de relation, tu précises, pour chaque relation, que l'intégrité référentielle doit être préservée. Cela signifie que si tu suprime un enregistrement dans une table "mère", tous les éléments correspondant dans les tables "filles" seront aussi suprimé. Pour ce faire, tu double click sur le lien (il faut bien viser).
2) Tu codes en VBA ce que doit faire ton bouton.
Exemple:
Private Sub Ton_Bouton_Click() Dim i As Long Dim mDb As Database Dim mRs, mRsFiltred As Recordset Set mDb = CurrentDb Set mRs = mDb.Openrecordset("Nom_Table", dbOpenDynaset, dbSeeChanges, dbPessimistic) mRs.Filter = "Critère pour les enregistrements à suprimer" Set mRsFiltred = mRs.Openrecordset mRsFiltred.MoveLast For i = 1 To mRsFiltred.RecordCount mRsFiltred.AbsolutePosition = i mRsFiltred.Edit mRsFiltred.Delete mRsFiltred.Update Next i End Sub
Rien n'est plus dangereux qu'une idée quand on a
qu'une idée :-)
Fada09
Messages postés
1701
Date d'inscription
lundi 15 septembre 2003
Statut
Contributeur
Dernière intervention
4 septembre 2010
539
4 juin 2004 à 00:54
4 juin 2004 à 00:54
quand tu crée ton bouton tu dois avoir l'assistant qui te propose différents types d'actions. Choisi supprimer l'enregistrement.
Ensuite dans outil relation tu doit pouvoir dire que lorsqu'on supprime ds la table principale tu supprime en cascade les champs de l'autre table.
Désolé si c'est incorrect ou imprecis je te dis ca de tête, j'ai pas access installé sur ce poste
Voila j'espere que je me suis pas planté et ue je t'aurais aidé.
A bientôt
;-)
~ ~ Fada ~ ~ : Member of Star!alco
Ensuite dans outil relation tu doit pouvoir dire que lorsqu'on supprime ds la table principale tu supprime en cascade les champs de l'autre table.
Désolé si c'est incorrect ou imprecis je te dis ca de tête, j'ai pas access installé sur ce poste
Voila j'espere que je me suis pas planté et ue je t'aurais aidé.
A bientôt
;-)
~ ~ Fada ~ ~ : Member of Star!alco
voila pour la première solution, j'avais déjà appliqué l'intégrité référentielle à mes relations et lorsque je créé un bouton de suppression à l'aide de l'assistant il me met ce message d'erreur :
Impossible de supprimer ou de modifier l'enregistrement car la table "ETABLISSEMENT" comprend des enregistrements connexes
pour la deuxième solutions, il me dit " erreur de compilation : membre de méthode ou de données introuvable " Je ne sais même pas ce que cela peut bien vouloir dire...
Impossible de supprimer ou de modifier l'enregistrement car la table "ETABLISSEMENT" comprend des enregistrements connexes
pour la deuxième solutions, il me dit " erreur de compilation : membre de méthode ou de données introuvable " Je ne sais même pas ce que cela peut bien vouloir dire...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je pense que je vais utiliser la solution un peu bourine que je voulais eviter. Pour la suppression ce n'est pas mettre à jour en cascade qui est important mais effacer en cascade.
Je sais que cette fonctionnalité est délicate à utiliser car elle entraine des conséquences des fois imprévu et je ne me rapelle plus lesquelles.
Et une autre question aussi quelle est la différence entre la suppression d'une données dans un champs et l'annulation d'une données dans un champs?
Merci
Je sais que cette fonctionnalité est délicate à utiliser car elle entraine des conséquences des fois imprévu et je ne me rapelle plus lesquelles.
Et une autre question aussi quelle est la différence entre la suppression d'une données dans un champs et l'annulation d'une données dans un champs?
Merci
Utilisateur anonyme
4 juin 2004 à 09:57
4 juin 2004 à 09:57
Le premier problème est lié à l'intégrité référentielle....
Le bouton de supression refuse de fonctionner car, semble-t-il, il ne peut pas suprimer les enregistrements dans les tables liées.
Donc, il faut que tu codes en VBA toutes les éliminations.
Il faut procéder par étape:
1) tu détermines la liste des tables qui doivent subir un nétoyage quand tu delete un champ de la table ETABLISSEMENT
2) tu crées un bouton dans ton form (celui que tu as créé est très bien, mais il va falloir modifier le code VBA qui est lié).
Pour pouvoir t'aider (VBA), j'ai besoin de + d'info.
- La table ETABLISSEMENT est liée à quelles autres tables?
- Par quels champs?
Rien n'est plus dangereux qu'une idée quand on a
qu'une idée :-)
Le bouton de supression refuse de fonctionner car, semble-t-il, il ne peut pas suprimer les enregistrements dans les tables liées.
Donc, il faut que tu codes en VBA toutes les éliminations.
Il faut procéder par étape:
1) tu détermines la liste des tables qui doivent subir un nétoyage quand tu delete un champ de la table ETABLISSEMENT
2) tu crées un bouton dans ton form (celui que tu as créé est très bien, mais il va falloir modifier le code VBA qui est lié).
Pour pouvoir t'aider (VBA), j'ai besoin de + d'info.
- La table ETABLISSEMENT est liée à quelles autres tables?
- Par quels champs?
Rien n'est plus dangereux qu'une idée quand on a
qu'une idée :-)
en effet mon bouton de suppression ne voulait pas marcher car il y avait l'intégrité référentielle mais en activant le bouton "supprimer en cascade" ca marche.
Pour répondre a ta question, la table principale de ma base de données est "salarié" . Il y a 4 tables liées a cette première "etablissement", "remunération", "départ", et "emploi".
La table "salarié" a comme clé primaire "num_salarie" et donc ce champs est une clé étrangère dans mes autres tables. Chacune de mes tables ont un numéro auto comme clé primaire.
Le problème avec la suppression en cascade est que j'ai peur que si je supprime un salarié dupont dans la table 'salarié" qui était opérateur industrie, que le bouton supprime dans la table emploi tout les opérateur industrie.
Pourrait tu m'éclairer, merci ca m'aide beaucoup
Pour répondre a ta question, la table principale de ma base de données est "salarié" . Il y a 4 tables liées a cette première "etablissement", "remunération", "départ", et "emploi".
La table "salarié" a comme clé primaire "num_salarie" et donc ce champs est une clé étrangère dans mes autres tables. Chacune de mes tables ont un numéro auto comme clé primaire.
Le problème avec la suppression en cascade est que j'ai peur que si je supprime un salarié dupont dans la table 'salarié" qui était opérateur industrie, que le bouton supprime dans la table emploi tout les opérateur industrie.
Pourrait tu m'éclairer, merci ca m'aide beaucoup
Utilisateur anonyme
4 juin 2004 à 10:14
4 juin 2004 à 10:14
Le bouton ne supprimera dans la table emploi que les enregistrements pour les quels la clé primaire de ta table "salarié" est identique. Rien d'autre.
Rien n'est plus dangereux qu'une idée quand on a
qu'une idée :-)
Rien n'est plus dangereux qu'une idée quand on a
qu'une idée :-)
Bonjour,
Effectivement si tu as une relation entre deux tables et que tu coches 'suppression en cascade', cela signifie que pour chaque enregistrement supprimé, il supprimera les enregistrements liés dans l'autre table. Pour changer le probleme, tu peux garder la liaison, mais décocher 'Appliquer l'intégrité référencielle'.
A+
Effectivement si tu as une relation entre deux tables et que tu coches 'suppression en cascade', cela signifie que pour chaque enregistrement supprimé, il supprimera les enregistrements liés dans l'autre table. Pour changer le probleme, tu peux garder la liaison, mais décocher 'Appliquer l'intégrité référencielle'.
A+
Très bien c'est parfait alors, ca me rassure.
Car j'ai activé l'option effacer en cascade, quand j'ai cliqué sur les relations puis j'ai créé mon bouton de suppression et CA MARCHE
MERCI MERCI MERCI
Car j'ai activé l'option effacer en cascade, quand j'ai cliqué sur les relations puis j'ai créé mon bouton de suppression et CA MARCHE
MERCI MERCI MERCI