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 :

Parcourir table ACCESS et supprimer certains enregistrements


Sujet :

VBA Access

  1. #21
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Bon désolé la journée a commencé tot ce matin et la fatigue se fait sentir

    quand j'execute la requete que tu m'as dit de créer il me sort:
    "vous avez essayé d'éxecuter une requête ne comprenant pas l'expression spécifié colA comme une partie de la fonction d'agregat"

  2. #22
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    Ok,

    j'ai oubliié le GROUP By dans mon exemple:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT colA, Min(colB) FROM MaTable GROUP By colA;

    tu mets bien sûr les noms de table et de champs corrects

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    dsl je m'embrouille
    je suis entrain de faire ce que tu m'as dit mais je dois modifier un truc avt
    le nom de ma table comporte un espace et il n'apprecie pas

  4. #24
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    c'est bon il m'a sorti un resultat :
    je compare a ce que je veux obtenir et je reviens vers toi tout de suite

  5. #25
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354

  6. #26
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Bon cette requete marche pour un point au moins:

    elle me permet d'obtenir un tableau ou il n'y a aucun doublon de colA
    (on retrouve une seul fois chaque valeur de colA)

    cependant qd elle a plusieurs enregistrements, elle ne selectionne pas toujours le bon:
    je me retrouve avec par exemple un "Moyen" attribué a l'élément 1 de ma col A alors qu'elle aurait du choisir le "fort" (c'est une exemple)

    Il faut que je réorganise la regle de selection de ma requete.

    En tt cas c'est deja un gros progrés
    merci Jpcheck

    tu es tres patient

    ps: je rentre je reviens des demain ou ce soir au plutot

  7. #27
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    OK
    il faudra qu'on trouve un moyen d'ordonner l'ordre d'importance dans tes tables, pour que le MIN() soit pleinement utile

    A toute à l'heure.

  8. #28
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Bonjour Jpcheck
    je suis de retour ce matin
    Je vais tenter de modifier ton code sql et de chnager l'ordre d'importance du tri...

    a toute

  9. #29
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Re,
    bon j'ai trouvé une solution mais c'est un peu tricher
    en tout cas ca marche
    en fait j'ai ajouter une valeur numérique a chacun de mes mots clef dans colB
    sous la forme 0_...,1_..., 2_..., 3_.... comme ca le classement de Min() est correct
    Penses tu que je puisse dans lle meme code SQL ajouter une fonction "remplacement" ou du type "delete.gauche(..,2)" pour remettre les mots sans les "1_"... ???

  10. #30
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    Salut,
    dans l'affichage oui,
    il "suffit" d'avoir un critère order différent :
    idée à adapter :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT colA, Right(Min(colB),Len(min(ColB))-2) FROM MaTable;

    d'abord on filtre avec le 0_ etc. puis on ne prend que les n-2 caractères de droite.

  11. #31
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Bon ben merci beaucoup Jpcheck

    ta solution marche tres bien
    elle m'affiche bien ce que je veux en tt cas


    Sinon j'ai une autre question

    Voila j'ai maintenant cette table (table1) qui comporte ColA ColB
    qui ne comporte aucun doublon.

    a coté j'ai une autre table (table2) du type:

    ColA ColC ColD et je souhaite y ajouter l'information ColB de mon autre table (table1)
    (cette table2 contient bcp plus d'enregistrement que table1)

    En gros un equivalent rechercheV avec pour element de croisement ColA sachant que dans certains cas il ne retrouvera pas le colA correspondant dans la table2.


    en gros j'ai essayé de construire une requete en ajoutant les champs des deux tables mais non

    Sais tu comment le faire ?

    merci davance

  12. #32
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    Pour ça je te renvoie sur l'article sur les jointures, et notamment cette partie ci :
    http://mhubiche.developpez.com/Acces...ointures/#L3.2
    et chapitres suivants

  13. #33
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Bon ben ca marche

    merci pour ton lien de cours
    tres bien expliqué

    ma relation est bien défini et mes champs s'affichent
    cependant qd il ne trouve pas de correspondance dans ma table1 pour colB il affiche "#Erreur"
    sais tu comment le supprimer
    Je ne pense pas que ca soit tres dur
    je vais chercher sur d'autres forums mais si tu passes par la...

  14. #34
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    On avance

    peux-tu me donner le code SQL de ta requête actuelle stp ?

  15. #35
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Ci dessous le code SQL de ma requete qui me permet de joindre les deux tables.
    d'une part la table contenant colA colB
    et d'autre part la table comportant colA colC et Retenu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT table2.[colA], table2.[colC], table1.colB, table2.Retenu
    FROM table2 LEFT JOIN table1 ON table2.[colA] = table1.colA;
    Il m'affiche bien tous les enregistrements de table2 et complete avec table1.colB qd il y a un element de colA en commun.
    Mais pour ceux qui n'existe pas dans table1 il met #Erreur pour colB

    Dans excel qd je faisai ce type de manipulation (rechercheV) j'utilisais SI(ESTNA(RECHERCHEV(...));...;...)

  16. #36
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Autre question parallele:

    Pour ameliorer mon programme il serait bon que je remplace la ligne ou dans mon code (sous VBA) je lui dis d'aller chercher mon fichier excel dans un repertoire en particulier par une fenetre parcourir et que je puisse selectionner moi meme manuellement l'emplacement du fichier excel à importer.

    remplacer ca en fait (la deuxième liigne ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Set oApp = CreateObject("Excel.Application")
    Set oWkb = oApp.Workbooks.Open("C:/fichier source.xls")
    Set oWSht = oWkb.Worksheets("nom de la feuille")

  17. #37
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    un seul sujet à la fois si tu veux bien

    peux-tu me confirmer la logique à afficher stp ?
    table1 avec ColA et ColB
    table2 avec ColA, ColC et ColD

    on prend tout de quel table stp ?

  18. #38
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    Re,

    On a bien :
    table1 avec ColA et ColB
    table2 avec ColA, ColC et ColD

    "on" veut completer table2 avecla ColB de table1

    soit obtenir

    table 2:
    colA colB colC colD

    (A priori on se "fout" de colC et colD)

    PS:ds mon code colD apparait sous le nom "Retenu"

  19. #39
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Points : 12
    Points
    12
    Par défaut
    peut-etre peut-on insérer dans le code SQL un IF du meme type que sur EXCEL

  20. #40
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    Essaie d'ajouter une gestion de la valeur Null :

Discussions similaires

  1. Supprimer une ligne d'enregistrement de table Access en VBA
    Par ivoratparis dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/08/2013, 12h02
  2. [AC-2007] Parcourir un RecordSet et supprimer certains Enregistrements
    Par symbabeauchat dans le forum IHM
    Réponses: 4
    Dernier message: 12/11/2011, 17h09
  3. Supprimer certains enregistrements
    Par Dennis Nedry dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/06/2008, 16h51
  4. Requête supprimant certains enregistrements
    Par marcGR dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 04/03/2008, 18h01
  5. [VBA Access] supprimer les enregistrements/remplir table/dll
    Par genirette dans le forum VBA Access
    Réponses: 1
    Dernier message: 25/01/2008, 09h23

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