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

NetBeans Java Discussion :

Soustraction entre deux colonnes d'Access avec interface NetBeans


Sujet :

NetBeans Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 32
    Points : 13
    Points
    13
    Par défaut Soustraction entre deux colonnes d'Access avec interface NetBeans
    Bonjour,

    Je souhaiterais faire la soustraction entre deux colonnes et mettre le résultat dans une autre colonne de Microsoft Access avec NetBeans mais je ne sais pas comment faire.

    Quelqu'un saurait-il me guider un peu ?

    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    C'est une question qui concerne 2 aspects (et rien à voir avec NetBeans, qui est juste un programme qui aide pour faire des programmes (un EDI)) :


    1. faire le traitement SQL de ton problème (faire une requête pour aller chercher les colonnes à multiplier et enregistrer le résultat - un UPDATE ... SET c = c1 * c2 WHERE...)
      Ceci n'a rien à voir avec Java. C'est du pur SQL et on pourrait le faire sans Java d'ailleurs.
    2. faire un programme Java qui exécute cette requête (JDBC)


    Sur quelle partie as-tu un problème ? Tu as du code à nous montrer ? Une erreur à nous décrire ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    Je suis débutante et je réalise ma première application (gestion de stock).

    Pour le moment j'ai réussi à ajouter des données à ma base de données à partir de l'interface NetBeans et maintenant j'aimerais avoir le résultat quantité existante - quantité demandé, dans une autre colonne à partir de l'interface mais je sais pas comment faire.

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Bon alors plusieurs remarques:

    1) bienvenue dans le monde du java, faire de la base de données Access en java, pour un début, c'est hard
    2) N'en prends pas trop l'habitude. Ms Access est une base de données *catastrophe* et n'est de toutes façons plus supporté par java (plus de connecteur ODBC dans les dernières versions de java)
    3) Si le programme n'a aucune base existante en access à récupérer, je recommanderais d'utiliser autre chaose. Soit une base de données embarquée comme h2,hsqldb, derby ou sqlite, soit une base de données comme postgresql ou mysql si il faut une installation séparée de la base.

    Pour accéder à tes données, je te conseille de commencer par jeter un oeil à la FAQ jdbc http://java.developpez.com/faq/jdbc/ ainsi qu'à ce cours http://jmdoudoux.developpez.com/cour.../chap-jdbc.php

    Pour résumé, pour accéder à ta base depuis ton programme java il faut

    1) un driver (ici le driver jdbc-odbc fournis avec java <=7)
    2) la chaine de connexion, spécifique au driver (voir les FAQ pour ça)
    3) créer une connexion via le drivermanager
    4) exécuter un requete via la connexion
    5) parcourir les résultat via le ResultSet retourné en 4
    6) Afficher

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    Salut,
    Merci pour vos conseils
    J'ai fait un petit essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {                                      
            // TODO add your handling code here:
            try{
     
           conn = Connect.ConnectDB();
           pst=conn.createStatement();
           pst.executeUpdate("insert into Table1 ("+"code,"+"quant)"+"values('"+txtcode.getText()+"','"+txtquant.getText()+"')"); 
                       JOptionPane.showMessageDialog(null, "ajouter");
     
           /* String sql =null;
                   sql ="intsert into Table1 ("+"code,"+"quantité)"+"values('"+txtcode.getText()+"','"+txtquantité.getText()+"')"; */
         /*   try {
                pst=conn.prepareStatement(sql);
                pst.execute();
                JOptionPane.showMessageDialog(null, "ajouter");
            } */ }
            catch(Exception e){
                            JOptionPane.showMessageDialog(null, e);          
     
     
            }
        }                                     
     
       private void jToggleButton1MouseClicked(java.awt.event.MouseEvent evt) {                                            
    try{
     
           conn = Connect.ConnectDB();
           pst=conn.createStatement();
           pst.executeUpdate("insert into Table1 ("+"quantde)"+"values('"+txtdemande.getText()+"')"); 
                       JOptionPane.showMessageDialog(null, "demander"); 
                      String sql ="SELECT Table1.quant-Table1.quantde FROM Table1";
     
     
                       pst.executeUpdate("insert into Table1 ("+"quantrest)"+"values('"+pst.executeQuery(sql) +"')");                 
     
     
                       // TODO add your handling code here:
    }
     catch(Exception e){
                            JOptionPane.showMessageDialog(null, e);
     
    }
        }
    Les données sont insérées dans la base de données mais la soustraction na pas marché.

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    De quelle soustraction tu parle? Il n'y a pas une seule soustraction dans ton code. Affiche nous le code où tu fais la soustraction si tu veux que l'on te corrige.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private void jToggleButton1MouseClicked(java.awt.event.MouseEvent evt) {                                           
    try{ 
           conn = Connect.ConnectDB();
           pst=conn.createStatement();
           pst.executeUpdate("insert into Table1 ("+"quantde)"+"values('"+txtdemande.getText()+"')"); 
                       JOptionPane.showMessageDialog(null, "demander"); 
     
                      String sql ="SELECT Table1.quant - Table1.quantde FROM Table1";   //la requette de la soustraction mais  elle ne fonctionne pas 
                       pst.executeUpdate("insert into Table1 ("+"quantrest)"+"values('"+pst.executeQuery(sql) +"')"); // ici je veux insérer le résultats de la soustraction(sql)  dans  quantresrt                 
     
                     }
     catch(Exception e){
                            JOptionPane.showMessageDialog(null, e);
     
    }
    désolé je sais que je vous ai embété

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mina luna Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
                      String sql ="SELECT Table1.quant - Table1.quantde FROM Table1";   //la requette de la soustraction mais  elle ne fonctionne pas 
                       pst.executeUpdate("insert into Table1 ("+"quantrest)"+"values('"+pst.executeQuery(sql) +"')"); // ici je veux insérer le résultats de la soustraction(sql)  dans  quantresrt                 
     ...
    }
    En SQL, pour mettre à jour des données on utilise un UPDATE. Là, tu utilises un INSERT (executeUpdate, c'est la méthode Java, pas SQL, pour exécuter une requête SQL du type INSERT ou UPDATE).

    Ensuite, quand tu écirs values('"+pst.executeQuery(sql) +"')" tu concatènes le résultat de l'exécution de lar requête dans la chaînne SQL qui pour un SELECT SQL est une instance de ResultSet : la concétantion transforme juste ce ResultSet en chaine de caactère par sa méthode toString; qui n'a rien à voir avec les valeurs récupérées de la base, donc ta requête doit planter.

    Fais une requête UPDATE en une seule fois, puisque les calculs peuvent être faits en SQL (si tu devais charger les valeurs en mémoire pour faire les calculs, ou modification en mémoire, tu pourrais procéder avec une requête SELECT puis une requête UPDATE (mais il faudrait parcourir le ResultSet pour récupérer les valeurs sélectionnées par le SELECT). :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            pst.executeUpdate("Update Table1 set qiantrest = quant - quantde"); // ici je veux insérer le résultats de la soustraction(sql)  dans  quantresrt
    D'ailleurs, tu pourrais faire cette soustraction directement dans l'insert, vu ton programme, puisque tu le fais juste avant l'INSERT. Sauf que l'INSERT aussi est incomplète : en SQL, la syntaxe c'est INSERT INTO table VALUES ( valeur 1, valeur 2, ...). La tu n'insères qu'une seule valeur, quantde, pour la soustraction, ça ne vas pas aller : il faudrait avoir inséré les 2 valeurs à soustraire (quant et quantde)... Mais ce premier INSERT devrait peut-être être également un UPDATE d'enregistrement déjà en base ?

    En plus, il y a des quotes autour de la valeur quant dans l'insert : c'est à priori une valeur numérique non ? Tu ne devrais pas procéder par concaténation pour faire des requêtes. Utilise plutôt des PreparedStatement, ça te simplifiera la gestion des types de données et t'évitera ce genre d'erreurs.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup, ça a fonctionné.

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

Discussions similaires

  1. [XL-2003] Soustraction de deux colonnes avec tab.
    Par khroutchev dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 07/08/2013, 15h03
  2. Réponses: 3
    Dernier message: 27/06/2008, 13h57
  3. Swap entre deux colonnes pour 2 enregistrements
    Par Erakis dans le forum SQL Procédural
    Réponses: 12
    Dernier message: 15/12/2005, 19h09
  4. Correspondance entre deux colonnes
    Par AlfiQue dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 09/12/2005, 14h03
  5. Minimum entre deux colonnes
    Par keikun dans le forum Requêtes
    Réponses: 5
    Dernier message: 18/08/2005, 13h20

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