Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/01/2008, 20h45   #1
Membre régulier
 
Inscription : mai 2006
Messages : 164
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 164
Points : 95
Points : 95
Par défaut Enregistrement impossible dans Table

Je suis complètemment perdu avec ma BDD créée il y a à peine 1 an.
Cette BDD comporte 1 table principale et elle est reliée à plusieurs autres sur le principe des relations. Au départ , j'avais prévu suffisamment d"enregistrements (+/- 300 sur le champ "affiliés") dans cette table et celles reliées afin que ma BDD fonctionne parfaitement. Tout se passait bien.Et voici que la semaine dernière ,je veux encoder (ajouter) mon affilié 301 , un message d'erreur s'affiche :"VOUS NE POUVEZ PAS AJOUTER OU MODIFIER L ENREGISTREMENT CAR L ENRREGISTREMENT EST REQUIS DANS LA TABLE". Normal me direz-vous puisque l'intégrité référentielle joue ici son rôle. J'ai commencé l'insertion dans chaque table en relation à l'enregistrement demandé mais j'ai abandonné , ce n'est pas logique de travailler de cette manière. Je suis bloqué je ne sais pas étendre ma base et tout le travail est par terre. Je suis vraiment désolé .C'est à partir de mon formulaire d'encodage que je suis tombé sur cette impossibilité et chose étonnante, lorsque je passe en ajout sur ce fo, une fenêtre vierge se présente mais pas moyen d'encoder les données pour les tables en relation.
J'aimerais tant pouvoir être aidé. Merci
Jacques-Henri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 21h24   #2
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 897
Points : 3 897
je ne pense pas que tu dois revoir ta conception à ce stade.
tu pourrais contourner cette intégrité référencielle en 'attaquant' directement tes tables.
en vba avec du sql ou par recordset sur l'événement avant insertion, voir sur erreur (à vérifier).

dans ce cas poste dans les forums appropriés.
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 21h31   #3
Membre Expert
 
Inscription : mars 2006
Messages : 1 331
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 1 331
Points : 1 460
Points : 1 460
Bonsoir,

Il serait bien de voir ces relations.

Cordialement.
__________________
Questions techniques par MP
Le peu que je sais, c'est à mon ignorance que je le dois.
...............................................................................Sacha Guitry
francishop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2008, 02h59   #4
Rédacteur/Modérateur
 
Avatar de Siguillaume
 
Homme Guillaume SIGUI
Chef de projet en SSII
Inscription : août 2007
Messages : 2 388
Détails du profil
Informations personnelles :
Nom : Homme Guillaume SIGUI
Localisation : Côte d'Ivoire

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : août 2007
Messages : 2 388
Points : 3 177
Points : 3 177
Envoyer un message via Yahoo à Siguillaume Envoyer un message via Skype™ à Siguillaume
Je pense que tu devrasi donner une idee sur les tables liees a ta table principale: surtout les cardinalites et ce que la BD est cense faire.
Mais, je ne crois pas que le probleme vienne de la conception, du moment ou cela a deja bien fonctionne, a moins que tu es fait, par inattention (ou une autre personne) des modifications sur les relations.
Essaie donc prealablement de reviser ta BD a zero: pas la recommencer, mais la relire en verifiant les relations.
__________________
Un gros problème est la somme de plusieurs petits problèmes.
Resolvez chacun des petits problèmes: vous aurez resolu le gros problème!
Mes tutos || Mon blog || Développeurs ivoiriens
Siguillaume est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2008, 11h48   #5
Membre régulier
 
Inscription : mai 2006
Messages : 164
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 164
Points : 95
Points : 95
Merci pour vos idées , je réfléchie auj à cela car je suis très embarrassé et inquiet. Je vais poster sur le forum .net.
Jacques-Henri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2008, 12h09   #6
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 897
Points : 3 897
je pensais en fait plutot aux sous forums SQL/VBA, pour inserer un enregistrement... faut pas allez chercher si loin...
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 13h44   #7
Membre régulier
 
Inscription : mai 2006
Messages : 164
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 164
Points : 95
Points : 95
Bonjour,

J'ai pu résoudre mon problème.Comme conseillé par Vodiem je me suis mis au travail en attaquant directement les tables puisque pour mes relations, j'ai revu et tout est cohérent.Cependant, cette méthode est lourde. Pour procéder ainsi, j'ai dû supprimer provisoirement les relations qui gênent l'ajoute d'un nouvel enregistrement dans la table principale et reproduire ensuite ces mêmes relations après cette ajoute.
Maintenant, j'aimerais savoir comment les attaquer ces tables avec code VBA pour contourner l'effet de l'intégralité référentielleEst-ce possible avec cette méthode? Si quelqu'un a une idée, je suis preneur.Ce serait plus facile.

Merci pour l'aide
Jacques-Henri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 13h59   #8
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 897
Points : 3 897
Jacques-Henri,
je m'imagine mal le contexte de ton soucis, mais
Citation:
cette méthode est lourde
me suprend, j'imaginais simplement sur un év 'av insertion' vérifier l'existance de la clef primaire, la créer au cas où par un "insert into" ou par recordset et poursuivre le traitement...
pas besoin de supprimer les relations.
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 20h56   #9
Membre régulier
 
Inscription : mai 2006
Messages : 164
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 164
Points : 95
Points : 95
En fait, je suis pas (encore) un expert et pour moi procéder en attaquant directement les tables me semble une façon de faire qui n'est pas aussi simple et d'autant plus fastidieuse qu'encoder à partir d'un formulaire. ceci étant dit, je ne sais pas faire autrement que de supprimer les relations sinon : je dois créer les enregistrements dans les tables liées comme l'exige l'intégrité réf...
Ainsi en supprimant la relation de la table liée avec une autre je n'encode que dans cette table principale ( la table nommée "Ta associés") et c'est ce qui m'intéresse. Par la suite, je crée au fur et à mesure les enregistrements correspondants dans la table reliée. Merci de me dire si je fais fausse route.
Pour la suite où puis je trouver l'aide pour mettre sous forme VBA l'év avant insertion que tu me conseille, puisque ma clef primaire existe avec N° auto.?
Merciiiiiiiiiiiiiiiiiiiiii
Jacques-Henri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 22h10   #10
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 897
Points : 3 897
pour reprendre: tu veux ajouter un enregistrement sur une table "fille" (liée) mais il faut préalablement créer un enregistrement dans la table "parent" pour pouvoir créer l'enregistrement si celui-ci n'existe pas.
le plus simple c'est de créer un sous form lier avec "champ pères" / "champ fils".
mais si tu ne veux pas remodifier tout cela tu dois créer manuellement l'enregistrement avant d'inserer l'enregistrement fils.
tu peux supprimer les relations mais ce n'est pas obligatoire si tu crée l'enregistrement manquant dans parent avant l'insertion.

recherche dans la faq pour l'insertion d'un enregistrement par recordset ou par sql.
sinon ouvre une discution sur ton prob dans le sous forum VBA Access.
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2008, 14h48   #11
Membre régulier
 
Inscription : mai 2006
Messages : 164
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 164
Points : 95
Points : 95
Hé oui, c'est tout à fait cela. Je vais suivre tes conseils,je désire pas créer de sous formulaire pour ne pas retoucher à ma BDD, mais sans supprimer les relations je vais ainsi créer l'enregistrement manquant avant insertion. Pour faire cela j'ai donc besoin de programmer l'événement en attaquant directement la table, si oui alors là je vois pas comment faire.
Tu peux peut-être me mettre sur une piste , en postant peut-être??
Je cherche.
Amicalement
Jacques-Henri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2008, 20h08   #12
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 897
Points : 3 897
oui, poste dans le sous forum VBA Access, tu auras plus de participant à la discution qu'ici, et surtout il est fait pour cela.
en principe tu dois faire dans l'ev 'av insertion':
rechercher si l'enregistrement à un parent, sinon lui créer un parent et récupérer ce num parent (clef primaire) pour l'attribuer au champ fille qui fait le lien (clef secondaire).
en principe c'est pas très compliqué, mais il est préférable que tu ouvres une discution dans le forum approprié pour que d'autre ayant le même soucis puisse profiter de la solution.
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h25.


 
 
 
 
Partenaires

Hébergement Web