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

VBA Access Discussion :

Permutez des éléments entre deux zones deux listes


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club Avatar de dricks
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 86
    Points : 38
    Points
    38
    Par défaut Permutez des éléments entre deux zones deux listes
    bonjour,
    j'ai un souci avec ma permutation de zone liste j'ai une erreur m'indiquant:

    erreur de synthaxe dans l'instruction UPDATE
    mais je ne vois pas ou est mon erreur exactement.

    pourriez vous m'aidez a resoudre ce petit probleme sur mon afichage SVP

    merci d'avance.
    voici mon appli afin que vou puissiez y jeter un oeil!!

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    1. Tes deux zones de listes n'ont pas les mêmes colonnes.
    Or ton code est utilisé pour les deux listes et récupère la valeur de la première colonne.

    Listegauche
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Base Consultation Achats ST PN2].Nom, [Base Consultation Achats ST PN2].Responsable, Lots.lots 
    FROM Lots INNER JOIN [Base Consultation Achats ST PN2] ON Lots.N°lots=[Base Consultation Achats ST PN2].[Num Lots] 
    WHERE (((Lots.N°lots)=Formulaires!automatchantier1![loit consulté]));

    ListeDroite
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Base Consultation Achats ST PN2].[Numéro ST], [Base Consultation Achats ST PN2].Nom 
    FROM Lots INNER JOIN [Base Consultation Achats ST PN2] ON Lots.N°lots=[Base Consultation Achats ST PN2].[Num Lots] 
    WHERE Selection;

    2. Pour la liste de gauche je mettrai un critère supplémentaire pour ne sélectionner que les enregistrements dont le champ Selection est décoché.

    Listegauche : nouvelle requête source
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Base Consultation Achats ST PN2].[Numéro ST],	[Base Consultation Achats ST PN2].Nom
    FROM Lots INNER JOIN [Base Consultation Achats ST PN2] ON Lots.N°lots=[Base Consultation Achats ST PN2].[Num Lots]
    WHERE (((Lots.N°lots)=Formulaires!automatchantier1![loit consulté]) AND (NOT (Selection)));

    3. Dans le code de la requête UPDATE
    - Mettre des crochets droits autour des noms de table/champ contenant des espaces.
    - Pas besoin de Chr(34) pour un champ numérique
    - pour inverser un champ Oui/Non : SET Champ = NOT Champ

    Donc, remplacer
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Db.Execute "UPDATE Base Consultation Achats ST PN2 SET Selection= Selection WHERE Numéro ST=" & _
        Chr(34) & .Column(0, i) & Chr(34)
    par
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Db.Execute "UPDATE [Base Consultation Achats ST PN2] SET Selection= NOT Selection WHERE [Numéro ST]=" & _
         .Column(0, i)

    4.
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    Db.Execute "UPDATE Base Consultation Achats ST PN2 SET Selection=" & CInt(bolSelection)
    - Pareil, il faut mettre des crochets droits.
    - il faut limiter ta requête UPDATE au lot consulté. Sinon tu modifie tous les enregistrements de la table
    nouveau code:
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Db.Execute "UPDATE [Base Consultation Achats ST PN2] SET Selection=" & CInt(bolSelection) & " " & _
               "WHERE (([Num Lots])=" & Me.loit_consulté & ")"

    Voila c'est tout.
    J'espère ne pas avoir fait d'erreurs de copier/coller.

    A+

  3. #3
    Nouveau membre du Club Avatar de dricks
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 86
    Points : 38
    Points
    38
    Par défaut
    merci beaucoup de ton aide sa marche a merveille!!

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

Discussions similaires

  1. Suppression des éléments d'une zone de liste
    Par Marc_27 dans le forum IHM
    Réponses: 17
    Dernier message: 08/10/2008, 15h31
  2. Drag&Drop entre deux zones de liste
    Par Herman dans le forum IHM
    Réponses: 1
    Dernier message: 28/06/2007, 19h14
  3. Liason entre deux zones de liste
    Par rainbow14 dans le forum IHM
    Réponses: 7
    Dernier message: 04/05/2007, 12h13
  4. Cacher des éléments dans une zone de liste
    Par toto10 dans le forum IHM
    Réponses: 11
    Dernier message: 19/07/2006, 15h03
  5. Faire passer des items entre deux zones de listes
    Par ludobado dans le forum Access
    Réponses: 8
    Dernier message: 04/05/2006, 18h33

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