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

Bases de données Delphi Discussion :

Liste déroulante éditable et mise à jour table


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Liste déroulante éditable et mise à jour table
    Bonjour, je voudrais savoir comment est-il possible de mettre une table (ADOTable) à jour alors qu'elle ne contient plus d'enregistrement ?

    Je m'explique, j'ai une table avec un filtre, je modifie le dernier enregistrement de sorte qu'il ne corresponde plus au critère, et lorsque je veux mettre à jour la table (post ou refresh), j'ai une erreur du genre "Un enregistrement est requis pour effectuer cette opération". Comment faire ?


    Autre chose, je suis en train de faire un soft de gestion de bédéthèque, et je voudrais que lorsque l'on ajoute un nouvel album, on choisisse le nom de la série dans une liste déroulante contenant toutes les séries de la base, mais qui reste éditable si il s'agit d'une nouvelle série... Comment faire ? De plus est-il possible que ce champ soit lié à la base comme un DBEdit ?

    Merci de votre aide.

  2. #2
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Please...
    Apparament ave une TLookUp... on peut faire ce genre de chose, mais lorsque la source de donnée, et la source de la liste sont la même, il y a conflit, et ça ne marche pas ... Comment faire ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Re : Please...
    Quelqu'un pour m'aider SVP ?

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut Re: Please...
    Citation Envoyé par Nean
    Apparament ave une TLookUp... on peut faire ce genre de chose, mais lorsque la source de donnée, et la source de la liste sont la même, il y a conflit, et ça ne marche pas ... Comment faire ?
    Tu fais une requete qui liste tes séries, et tu le lies a ton dblookupcombobox.

    En clair le lookupsource lies à la requete et le Datasource et datafield connectés à l'adotable.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Ok...
    J'y avais pensé, mais je me demandais si il y avait pas une autre solution (sans avoir a ajouter une autre requête), mais c'est pas grave, je vais faire ça... La listBox restera éditable ? Merci.

    Et pour mon problème de rafraîchissement, une idée ?

    Bonjour, je voudrais savoir comment est-il possible de mettre une table (ADOTable) à jour alors qu'elle ne contient plus d'enregistrement ?

    Je m'explique, j'ai une table avec un filtre, je modifie le dernier enregistrement de sorte qu'il ne corresponde plus au critère, et lorsque je veux mettre à jour la table (post ou refresh), j'ai une erreur du genre "Un enregistrement est requis pour effectuer cette opération". Comment faire ?

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut Re: Ok...
    Citation Envoyé par Nean
    J'y avais pensé, mais je me demandais si il y avait pas une autre solution (sans avoir a ajouter une autre requête), mais c'est pas grave, je vais faire ça... La listBox restera éditable ? Merci.

    Et pour mon problème de rafraîchissement, une idée ?

    Bonjour, je voudrais savoir comment est-il possible de mettre une table (ADOTable) à jour alors qu'elle ne contient plus d'enregistrement ?

    Je m'explique, j'ai une table avec un filtre, je modifie le dernier enregistrement de sorte qu'il ne corresponde plus au critère, et lorsque je veux mettre à jour la table (post ou refresh), j'ai une erreur du genre "Un enregistrement est requis pour effectuer cette opération". Comment faire ?
    Non car je comprend pas ce que tu veux faire ^^
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Voilà
    Tout d'abord avec la méthode que tu préconnnise, la TDBLookupComboBox n'est pas éditable, comment la rendre également éditable ?

    Ensuite pour mon second problème, je vais essayé d'âtre plus clair :

    J'ai en fait une ADOTable appelée ADOTprets basée sur ma table TALBUMS, avec pour filtre le champ "Emprunteur" non nul, ainsi elle contient tous les albums en prêt.
    J'affiche le tout dans une listbox, et lorsqu'un album est rendu, à l'aide d'un bouton je met le champ "Emprunteur" à vide.

    Lorsque j'ai plusieurs albums en prêt, tout marche trés bien , les données sont mise à jour automatiquement, et l'album rendu disparaît de la liste. Mais quand je suis sur le dernier album et que je clique sur Retour, les modifications ne sont pas effectués tout de suite, et ne sont en fait jamais effectuer, même à la fermeture de l'application.

    Mais si je fais un Post ou Refresh sur la table, j'ai une erreur du genre "un enregistrement est nécessaire pour effectuer cette opération"...

    Peut-tu m'aider ?

  8. #8
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Pour le dblookupcombobox, tu peux trouver des composants qui pourront faire ce que tu veux dasn la JVCL (tres bonne librairie de composants). Le jvdblookupedit ou un des composants de cette série.

    Pour le reste, moi je serais pas passé par une connexion direct a un adotable (je prefere les requetes ^^).
    Mais je vois a peut pres ce que tu veux faire.

    En gros tu fais comme ca :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure BouttonClick ... ;
    begin
      With AdoTable do
      begin
        edit;
        FieldByName('Champ_a_mettre_a_jours').asString := Le_Combo_Box.text;
        Post;
        Refresh;
      end;
    end;
    A a place de Refresh, utilise Requery, je pense que ca aidera ou sinon


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      Filtered := False;
      Refresh;
      Filtered := True;
    Avoir et à tester ^^
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  9. #9
    Futur Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Je vais essayer la JVCl, le temps de la dl (56k poweer ! ) !

    A a place de Refresh, utilise Requery, je pense que ca aidera ou sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      Filtered := False;
      Refresh;
      Filtered := True;
    Avoir et à tester ^^
    Merci, mais j'avais déja testetr cette petite astuce que ce soit avec refresh ou requery, la même erreur survient toujours, vois-tu une autre solution ? Car avec les requêtes, cela m'oblige à faire deux requêtes, une pour récupérer les données, et une autre pour les modifier, et je voudrais éviter de trop compliquer, et de trop surcharger en composants...

  10. #10
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Si tu peux mettre un bout de ton code, car autant le problème vient d'ailleurs.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  11. #11
    Membre habitué Avatar de colfire_dev
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2007
    Messages : 244
    Points : 195
    Points
    195
    Par défaut
    Donne plus d'infos ça m'interesse de t'aider
    A la Recherche du Parfait il faut faire et refaire
    L'homme sage apprend de ses erreurs. L'homme encore plus sage apprend des erreurs des autres.

  12. #12
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    Citation Envoyé par Nean Voir le message
    TJ'ai en fait une ADOTable appelée ADOTprets basée sur ma table TALBUMS, avec pour filtre le champ "Emprunteur" non nul, ainsi elle contient tous les albums en prêt.
    J'affiche le tout dans une listbox, et lorsqu'un album est rendu, à l'aide d'un bouton je met le champ "Emprunteur" à vide.
    tu as répondu à ta question
    et si tu suprim l'enregistrement complétement
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/03/2014, 10h15
  2. Réponses: 6
    Dernier message: 05/10/2010, 21h02
  3. Réponses: 6
    Dernier message: 20/07/2006, 16h15
  4. [TQuery][DBGRID] pb de mise à jour: table en lecture seule
    Par Chrystèle Carré dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/11/2003, 09h36

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