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

Requêtes et SQL. Discussion :

[ACCESS 2003] - Requête d'ajout


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 160
    Points : 48
    Points
    48
    Par défaut [ACCESS 2003] - Requête d'ajout
    Bonjour,

    J'ai deux tables : ARTICLE/STOCK et PRIX.
    ARTICLE/STOCK (Code Article (Clé primaire : numéro auto), ...)
    PRIX (Code Prix (Clé primaire : numéro auto), ...)
    J'ai un formulaire : Mouvements Pièces Magasin

    Quand j'enregistre un nouvel article dans mon formulaire, j'ai une procédure évenementielle sur le champ "Prix unitaire" "Après MAJ" qui appelle une macro qui appelle une requête d'ajout. Voici la syntaxe de la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO PRIX ( [Code Article], [Code catégorie], [Prix unitaire] )
    SELECT [ARTICLE/STOCK].[Code Article], [ARTICLE/STOCK].[Code catégorie], [ARTICLE/STOCK].[DernierDePrix unitaire]
    FROM [ARTICLE/STOCK]
    WHERE ((([ARTICLE/STOCK].[Code Article])=[Formulaires]![Mouvements Pièces Magasin]![Code Article]) AND (([ARTICLE/STOCK].[Code catégorie])=[Formulaires]![Mouvements Pièces Magasin]![Code catégorie]) AND (([ARTICLE/STOCK].[DernierDePrix unitaire])=[Formulaires]![Mouvements Pièces Magasin]![DernierDePrix unitaire]));
    Mon problème est le suivant : La requête est lancée mais elle m'ajoute à chaque fois 0 ligne! J'ai regardé dans l'aide et il y'a un truc avec le problème de numéro auto. J'ai essayé en ne prenant pas le Code Article mais dans ce cas là la requête ajouterai des enregistrements pour tous les articles selon la catégorie et le prix unitaire.

    Si vous n'avez pas compris, posez-moi des questions.

    Merci d'avance pour votre soutien.
    Cordialement,
    Guillaume.

  2. #2
    Membre éclairé Avatar de polo(31)
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 721
    Points : 770
    Points
    770
    Par défaut
    j'avais un probléme un peu dans le genre:
    a chaque fois la requéte créé des doublons dans ma clés primaire (un numauto) et ne m'ajouté aucune ligne

    alors dans mon code erreur j'ai créé une recupération d'erreur et a chaque fois j'incrémenté ma variable de +1 donc tot ou tard je tombé sur une valeur qui n'éxisté pas

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 160
    Points : 48
    Points
    48
    Par défaut
    Oui je comprends mais il faut une solution fiable

  4. #4
    Membre éclairé Avatar de polo(31)
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 721
    Points : 770
    Points
    770
    Par défaut
    tu peu créé une requéte qui renvoi le nombre max de ton numauto, le mettre dans ta variable et lui ajouté 1

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 160
    Points : 48
    Points
    48
    Par défaut
    Je vois pas trop comment faire ... Tu peux me mettre sur la voix?

  6. #6
    Membre éclairé Avatar de polo(31)
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 721
    Points : 770
    Points
    770
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select Max(monchampsAuto) From matable;
    c'est fonction (sorti de la FAQ) renvoi la valeur du dernier numauto de ton champ, tu lui ajoute 1 et tu le met dans ta variable (là ça dépend de se que tu as)

  7. #7
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 46
    Points : 56
    Points
    56
    Par défaut
    A l'aide d'un recordset je suppose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim rst as DAO.recordset
    dim nombre as integer
     
    set rst = currentdb.openrecordset("select max([code article]) as maximum from PRIX")
     
    nombre = rst!maximum + 1
    et voila tu obtien normalement le code article maximum et il ne te reste qu'a lui ajouté 1 ensuite tu utilise la valeur de la variable nombre.

    en espérant avoir été clair et utile.

Discussions similaires

  1. [Access 2003] Requête sql multicritère
    Par stargates dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 25/09/2008, 15h34
  2. [ACCESS 97] Requête Union, Ajout de champ
    Par AGR26 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 05/09/2007, 08h55
  3. [Access 2003] Requête Ajout
    Par damsmut dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 03/08/2007, 12h27
  4. [Access 2003] Requête croisée
    Par nihilulter dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/04/2007, 10h48
  5. [Access 2003] Requête analyse croisée
    Par nihilulter dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/04/2007, 09h47

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