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

IHM Discussion :

[SQL]Problème liens formulaires / tables


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Points : 14
    Points
    14
    Par défaut [SQL]Problème liens formulaires / tables
    Bonjour
    Voilà j'ai 3 tables :
    http://img141.imageshack.us/my.php?i...nstitrend9.jpg

    J'ai effectué une requête en mode création pour pouvoir l'utiliser ensuite dans un formulaire:

    http://img457.imageshack.us/my.php?i...nstitreje9.jpg

    mais cette requête ne fonctionne pas (erreur syntaxe sql etc...)

    En fait, je voudrais que lorsque que l'on effectue un achat pour tel type de cartouche, le quantité d'achat s'ajoute au nombre en stock de la table CARTOUCHES par l'intermédiaire d'un formulaire.

    Merci d'avance...

  2. #2
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 895
    Points : 4 325
    Points
    4 325
    Par défaut
    post ton sql ca sera plus parlant

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Points : 14
    Points
    14
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Achats.cartouche, Achats.nombreachat, Achats.date, Cartouches.nombreachat+[nompbreenstock] AS nombreenstock
    FROM Cartouches INNER JOIN Achats ON Cartouches.cartouche=Achats.cartouche;
    Voilà ce qu'il me donne en SQL après l'avoir fait en mode création.

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    Bonjour,

    A la vue de ce code il me semble que tu additionne nombreachat et nombreenstock. Cependant nombreenstock est le résultat de la formule nombreachat+nombreenstock. Ou prend-il nombreenstock ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cartouches.nombreachat+[nompbreenstock] AS nombreenstock
    ça manque de logique tout ça !

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 895
    Points : 4 325
    Points
    4 325
    Par défaut
    il le prend dans la table Achats:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Achats.cartouche, Achats.nombreachat, Achats.date, [Achats].[nombreachat]+[Cartouches].[nombreenstock] AS nombreenstock
    FROM Achats INNER JOIN Cartouches ON Achats.cartouche = Cartouches.cartouche;

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    Dans ce cas évitez d'utiliser le même nom.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 895
    Points : 4 325
    Points
    4 325
    Par défaut
    ok: ca c'est pas dur a résoudre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Achats.cartouche, Achats.nombreachat, Achats.date, [Achats].[nombreachat]+[Cartouches].[nombreenstock] AS nbenstock
    FROM Achats INNER JOIN Cartouches ON Achats.cartouche = Cartouches.cartouche;

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    +1
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Points : 14
    Points
    14
    Par défaut
    Merci de vos réponses ! Mais le champ nombreenstock de la table CARTOUCHES ne se met pas à jour quand j'affiche les données de cette table, par contre la requête et le calcul se font correctement dans le formulaire.

    Y a t-il donc moyen de faire le lien avec la table et le calcul du champ nombreenstock ?

    Merci.

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    Pour mettre à jour le champ d'une table il faut utiliser une requête Update (mise à jour) très facile de transformer une requête select en update puisqu'il suffit dans le QBE de choisir dans le menu le type de requête que l'on souhaite.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  11. #11
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 895
    Points : 4 325
    Points
    4 325
    Par défaut
    je m'en doutais de celle la...
    je me disais pourquoi il appel ca pareil...

    tu pensais qu'en le nommant ainsi il allait prendre la place du champ, non?

    ben: non...

    le champ calcul c'est un champ supplémentaire "virtuel" qui n'existe pas dans tes tables, uniquement dans ta requete.

    si tu veux mettre a jour cette valeur dans le champ nombreenstock il va falloir l'y mettre:
    par ex: après mis a jour du champ tu met le résultat de 'calcul' dans 'nombreenstock'.

    tu n'aurais pas eu ce problème si nombreenstock était lui aussi le résultat d'une requete incluant tes saisies mais bon ce qui est fait est fait tu vas pas te remettre à modifier tes tables.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 46
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par vodiem
    je m'en doutais de celle la...
    je me disais pourquoi il appel ca pareil...

    tu pensais qu'en le nommant ainsi il allait prendre la place du champ, non?

    ben: non...

    le champ calcul c'est un champ supplémentaire "virtuel" qui n'existe pas dans tes tables, uniquement dans ta requete.

    si tu veux mettre a jour cette valeur dans le champ nombreenstock il va falloir l'y mettre:
    par ex: après mis a jour du champ tu met le résultat de 'calcul' dans 'nombreenstock'.

    tu n'aurais pas eu ce problème si nombreenstock était lui aussi le résultat d'une requete incluant tes saisies mais bon ce qui est fait est fait tu vas pas te remettre à modifier tes tables.
    Merci mais dans quel option de QBE faut il faire cela, mettre le resultat du calcul dans le champ de la table ?

    Merci

  13. #13
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 552
    Points
    24 552
    Par défaut
    Bonjour,

    Dans la ligne champ tu place le champ que tu doit mettre à jour.

    Dans la ligne mise à jour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Achats].[nombreachat]+[Cartouches].[nombreenstock]
    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  14. #14
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    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 895
    Points : 4 325
    Points
    4 325
    Par défaut
    mon avis: ca crains vraiment ton histoire!

    par exemple:
    tu as nombreenstock=2
    tu saisie nombreachat=3
    il mettra nombreenstock=3+2=5
    et tu te dis: "et puis zut, a bas l'avarice" tu change, saisie de nouveau:
    nombreachat=1000
    il mettra nombreenstock=3+2+1000=1005 !!!! et pas 1002 !!!!

    j'ai pas cogité plus loin mais ca crains: tu ne sais pas si nombreenstock est avec ou sans le nombreachat déjà inclus donc il va falloir bricoler avec 'avant maj':sauvegarder la valeur, 'apres maj':faire la différence... (en + des controles sur les valeurs: si null nombreachat ou nombrestock)

    enfin bon courage!!

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/02/2009, 07h49
  2. [SQL]Problème d'édition table.
    Par Maldus dans le forum Débuter
    Réponses: 1
    Dernier message: 14/07/2008, 14h33
  3. Problème relation formulaire/table
    Par moilou2 dans le forum IHM
    Réponses: 5
    Dernier message: 28/02/2008, 14h49
  4. Réponses: 6
    Dernier message: 31/03/2006, 17h05
  5. [SQL] Probléme de tables
    Par mr.tux dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/01/2006, 07h20

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