IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

dbgrid comme dans access


Sujet :

Composants VCL Delphi

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    529
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 529
    Points : 464
    Points
    464
    Par défaut dbgrid comme dans access
    salut,
    j'ai 3 tables comm(père) DS1, commcli(fils) DS2 le champs numcom, et produit DS3 qui est reliée à comcli via proda= refproduit
    le dbgrid a comme source DS2 (comcli), je peut entrer uniquement 1 enregistrement mais si je veut introduire un second enregistrement une erreur apparait qui parle de la table produit.
    je souhaite utiliser le dbgrid comme dans access je le rempli comme je le veut.
    une idée SVP.
    MERCI.
    Deux, n'apprendront pas; le timide et l'arrogant

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par hocine Voir le message
    le dbgrid a comme source DS2 (comcli), je peut entrer uniquement 1 enregistrement mais si je veut introduire un second enregistrement une erreur apparait qui parle de la table produit.
    Allez jusqu'au bout dans la présentation de votre problème. Indiquez le message d'erreur et pas une évocation vague...
    Indiquez aussi comment vous accédez à la base Access? BDE ? ADO ? autre ?
    Précisez enfin la structure des tables, surtout la partie correspondant aux liens (clé,contrainte).
    --
    Philippe.
    Philippe.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    529
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 529
    Points : 464
    Points
    464
    Par défaut
    salut PH;
    merci pour votre réponse et désolé pour le retard.
    voici le msg
    le projet monprj.exe a provoqué une classe d'exception EOLe exception avec le message "vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans la table 'produit".Processus stoppé.Utililsé pas-à-pas pour executer ...
    j'utilise ADOConnexion mes tables sont dans une BDD access.
    comm(numcom, dt, nfact,...) DS1, commcli(codenc, numcom*,proda*,qte, remise) DS2 le champs numcom, et produit(refproduit,qtestock,PUV,PAC) DS3 qui est reliée à comcli via proda= refproduit
    j'espère que j'ai répondue à vos questions
    j'ai mis un évenment pour la touche entrer quand l'utlisateur arrive dans ma cellule tot qui donne le résultat (Qte*PUv)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    dbgrid1.DS2.dataset.post;
    dbgrid1.DS2.dataset.append;
    MERCI.
    Deux, n'apprendront pas; le timide et l'arrogant

  4. #4
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    En fait j'ai l'impression que tu as un pb de lien 'maitre/détail' dans tes tables.
    Ce lien est mis en place soit :
    =Au niveau de la base de données.
    =Dans le code
    =Dans les composants Delphi
    J'ai l'impression que tu es dans le premier cas et que la base restreint tes actions sur des tables liées.
    Je te conseille de gérer les relation Maitre/Détail dans le code (c'est le plus long à faire mais tu maîtrises tous) ou par les comp. Delphi voir : http://delphi.about.com/od/database/l/aa071001c.htm en tout cas pas par le base...

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    529
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 529
    Points : 464
    Points
    464
    Par défaut
    salut,
    merci philnext pour votre réponse,
    je vais voir.
    ce que je voulai faire c'est de simplifier mon projet pour l'utilisateur finale, car avant j'utiliser l'eclipsse dans le dbgrid et sur clic un formulaire apparait qui contient la liste des produits et l'useur n'avait qu' à choisir à partir de cette liste. et quand j'ai vue access je souhaité amélioré mon projet, mais
    encore MERCI.
    Deux, n'apprendront pas; le timide et l'arrogant

  6. #6
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par hocine Voir le message
    merci pour votre réponse et désolé pour le retard.
    Il n'y a pas de mal !
    le projet monprj.exe a provoqué une classe d'exception EOLe exception avec le message "vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans la table 'produit".Processus stoppé.Utililsé pas-à-pas pour executer ...
    Vous ajoutez une ligne de votre grille dans la table COMMCLI où le champ proda contient une valeur, voire pas de valeur du tout (clé étrangère) qui ne correspond à aucune valeur de la colonne refproduit de la table PRODUIT (clé primaire) => violation de la contrainte et rejet.
    Il faudrait tracer votre code pour voir si vous ne cherchez pas à insérer une ligne incorrecte (champ proda vide ou ne correspondant à aucune valeur de la colonne refproduit) dans la table.

    Citation Envoyé par philnext Voir le message
    Je te conseille de gérer les relation Maitre/Détail dans le code (c'est le plus long à faire mais tu maîtrises tous) ou par les comp. Delphi voir : http://delphi.about.com/od/database/l/aa071001c.htm en tout cas pas par le base...
    Je ne suis pas d'accord ! Gérer les contraintes d'intégrité dans le code plutôt que dans la base est dangereux et ouvre la porte à toute sorte d'incohérences du contenu de la base de données. Bien au contraire, l'impression de maitrise est illusoire. Laissons à la base ses contraintes et sa logique et à l'application le moyen de l'alimenter en les respectant en amont (pré contrôle) ou en aval (gestion des exceptions).
    --
    Philippe.
    Philippe.

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    529
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 529
    Points : 464
    Points
    464
    Par défaut
    salut,
    j'ai essayé la méthode de ADOSHAPE le même problème message d'erreur:
    "vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé et requis dans la table employee". utilisez pas-à-pas ou exécuter pour continuer.
    alors je souhaite savoir où est le problème? même dbdemos a ce problème
    MERCI.
    Deux, n'apprendront pas; le timide et l'arrogant

  8. #8
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 687
    Points : 5 277
    Points
    5 277
    Par défaut
    Comme te l'a suggéré Ph. B. vérifie que la référence que tu mets dans le champ prada existe dans la table produit

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    529
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 529
    Points : 464
    Points
    464
    Par défaut
    ok merci,
    désolé c'était la fin de l'année et j'était trops occupé.
    j'ai créer une autre table produit (num,codpro,desi,qte) et maintenant tout est rentré dans l'ordre.
    mon problème étatit le suivant
    table marchandise(numm,march) diamètre(numd,diam)
    produit(num,refm*,refd*,qte)
    maintenant j'ai retiré les 2 tables marchandise et diametre.
    MERCI
    Deux, n'apprendront pas; le timide et l'arrogant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/11/2012, 21h02
  2. Peut-on ecrire vba dans excel comme dans access ?
    Par docjo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/10/2009, 07h38
  3. Comment écrire dans un dbGrid comme dans Ciel 2006 ?
    Par kamel2002 dans le forum Débuter
    Réponses: 1
    Dernier message: 20/12/2007, 15h45
  4. La Sécurité dans Access
    Par Maxence HUBICHE dans le forum Sondages et Débats
    Réponses: 81
    Dernier message: 24/06/2007, 01h07
  5. Enregistrement trop long dans ACCESS (ALTER TABLE)
    Par Arrown dans le forum Bases de données
    Réponses: 2
    Dernier message: 29/07/2004, 20h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo