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 :

MAX par colonne


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut MAX par colonne
    Bonjour à tous,

    Voila mon problème: sur access je selectionne dans ma table plusieurs colonnes qui sont toutes des dates.
    J'aimerais créer une nouvelle colonne avec la date MAX des dates par ligne.

    Merci a vous!

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,
    Je ne vois pas trop l'intérêt de créer cette nouvelle colonne. Dans tous les cas pas de fonction toute faites pour ça.

    Il faut faire un tri pour connaitre et écrire la plus grosse.

    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

  3. #3
    Membre éclairé Avatar de pyloupylou
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2012
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2012
    Messages : 438
    Points : 666
    Points
    666
    Par défaut
    hello,

    tu peux faire une fonction du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function maxdate(lstdate As Variant) As Date
    Dim i As Integer
    Dim wdate As Date
    For i = 0 To UBound(lstdate)
        If lstdate(i) > maxdate Then
            maxdate = lstdate(i)
        End If
    Next
    End Function
    ensuite pour l'utiliser soit avec une fonction comme ci dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub test()
    MsgBox maxdate(Array(#1/2/2014#, #9/1/2014#, #1/15/2014#))
    End Sub
    soit dans un ordre sql comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select date1,date2,date3, maxdate(array(date1,date2,date3)) as datemax from table
    ----
    Il ne s'agit pas de chercher à tout savoir mais de savoir où tout chercher

    merci de penser à
    Au fait.... je ne réponds pas, moi non plus, aux mp

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup
    j'ai une autre petite question, au cas où vous pouvez m'aider. (Excusez moi je débute sous access ... )

    J'ai une table 'data' avec un champ code et un value
    une 2eme table avec plusieurs champs dont plusieurs sont des "code" de la table 'data',

    J'aimerais donc avoir les "value" de chaque champs de cette 2eme tables.
    j'avais commencé à créer une requete SQL mais c'est très lourd car il y a beaucoup de champs et donc je dois recréer une nouvelle table 'data' pour recuperer la "value" de chaque champs.

    Dans le meme principe j'aurais souhaité faire une requete permettant de parcourir ma deuxieme table qui va parcourir la premiere a la recherche de la value correspondant au code, et va l'inserer dans la nouvelle table. JE ne sais pas si tout ca est très clair... Mais mon entreprise m'a demandé de leur faire ca et je n'y arrive vraiment pas depuis ce matin :s

    Merci à vous tous

  5. #5
    Membre éclairé Avatar de pyloupylou
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2012
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2012
    Messages : 438
    Points : 666
    Points
    666
    Par défaut

    heu, j'ai l'impression que tu vas passer maître dans la gestion des tableaux
    pour ton problème je ne vois pas autre que chose de passer par une boucle en vba

    tu peux peut-être construire un tableau à deux dimensions contenant les noms de tes colonnes
    le balayer et mettre à jour ta table
    bon un rien bourrin, mais face à une structure aussi surprenante
    exemple :

    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
     
    sub test()
    on error goto test_erreur
    dim tarrayposte( 5,2) as string
    ' et ensuite de les charger en décomposant 
    tarrayposte(1,1)="code1"
    tarrayposte(1,2)="libelle1" 
    ...
    tarrayposte(5,1)="code5"
    tarrayposte(5,2)="libelle5" 
     
    ' ensuite tu balayes ta table 
     
    dim rs as recordset
    set rs = currentdb.openrecordset("tatable2") 
    rs.movefirst
    while not rs.eof
           ' on passe en edition sur l'enregistrement  
           rs.edit
           ' tu boucles sur le nombre de poste 
            for i = 0 to ubound(tarrayposte,1)
                wcode=rs.fields(tarrayposte(i,1))
                rs.fields(arrayposte(i,2)= dlookkup("libelle","table1","[toncodecherche]='" & wcode &"'")      
            next 
            rs.update
            rs.movenext  
    wend
    rs.close
    set rs=nothing
    goto fin_test
    test_erreur:
    msgbox "YA un BLEME: " & err.number &"-" & err.description
    fin_test:
    end sub
    ----
    Il ne s'agit pas de chercher à tout savoir mais de savoir où tout chercher

    merci de penser à
    Au fait.... je ne réponds pas, moi non plus, aux mp

  6. #6
    Membre éclairé Avatar de pyloupylou
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2012
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2012
    Messages : 438
    Points : 666
    Points
    666
    Par défaut
    heu en relisant ta question en fait je ne crois pas que ce soit une bonne solution

    pour moi compléter ta table avec des libellés ressemble plus à de la restitution qu'à un besoin de stockage
    donc il peut être plus pertinent de transposer ta tables avec tous tes codes par enregistrement en une table avec un enregistrement par identifiant de ta ligne, j'imagine qu'il y en a 1 , et ton code

    ensuite ce sera trivial de faire ta requête en ramenant ton libelle.

    aprés tu regardes comment mettre en forme le résultat ( voir si un tableau croisé pourrai répondre au besoin.
    ----
    Il ne s'agit pas de chercher à tout savoir mais de savoir où tout chercher

    merci de penser à
    Au fait.... je ne réponds pas, moi non plus, aux mp

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Oui je veux faire un select seulement je dois creer beaucoup de table...
    Voici le select qu' Access me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT *
    FROM ((((ta_fonds_fonds_questiondata INNER JOIN [Technique - Data] ON ta_fonds_fonds_questiondata.question_FORMEJUR = [Technique - Data].Code) INNER JOIN [Technique - Data] AS [Technique - Data_3] ON ta_fonds_fonds_questiondata.question_FONDSPUB = [Technique - Data_3].Code) INNER JOIN [Technique - Data] AS [Technique - Data_1] ON ta_fonds_fonds_questiondata.question_PARTICU = [Technique - Data_1].Code) INNER JOIN [Technique - Data] AS [Technique - Data_2] ON ta_fonds_fonds_questiondata.question_TAILLEFONDS = [Technique - Data_2].Code) INNER JOIN [Technique - Data] AS [Technique - Data_4] ON ta_fonds_fonds_questiondata.question_FONDSFORM = [Technique - Data_4].Code;
    Seulement là je l'ai fait qu'avec 4 'Question', il y en a une trentaine ...

  8. #8
    Membre éclairé Avatar de pyloupylou
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2012
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2012
    Messages : 438
    Points : 666
    Points
    666
    Par défaut

    je pense qu'on ne se comprends pas

    tu as une table avec n codes appelons la "tab_reponses" qui possède comme structure les colonnes code1,code2,code3.......code20
    j'imagine que dans cette table tu as un champ qui te permet d'identifier l'enregistrement , je l'appelle "questionnaire"
    ( fais pas attention aux points c'est pour avoir un alignement à peu prés correct)
    on a donc comme structure :
    +questionnaire+---code1--+--- code2---+---code3----+ etc
    !quest1.........!.... val1.....! val2..........!... val3...........!

    tu as une table référence avec un code et libellé du style
    code+ libelle
    val1 ! c'est la valeur1
    val2 ! un autre libelle
    val3 ! un troisième libelle

    Ce que je te proposais était que tu fasses une routine qui te transforme la table tab_reponse en une structure de type :
    questionnaire+ code
    quest1......... ! val1
    quest1......... !val2
    quest1......... !val3
    la du coup tu peux t'inspirer de la boucle que je t'ai donné plus haut

    une fois que tu as cette table, la joindre avec référence est trivial
    l'étape suivante est de remettre l'information en ligne et c'est là que je te disais les TCD ( ou voir ce que tu peux obtenir avec l'ordre transform

    Mais à toi de me dire si je suis ou non sur ce que tu veux faire
    ----
    Il ne s'agit pas de chercher à tout savoir mais de savoir où tout chercher

    merci de penser à
    Au fait.... je ne réponds pas, moi non plus, aux mp

Discussions similaires

  1. Tri par colonne de n'importe quel StringGrid
    Par Dionyzos dans le forum Composants VCL
    Réponses: 3
    Dernier message: 02/07/2008, 16h47
  2. Réponses: 5
    Dernier message: 29/12/2005, 10h31
  3. affichage colonne par colonne
    Par tjoce dans le forum Langage
    Réponses: 1
    Dernier message: 02/11/2005, 18h19
  4. [HTML] Construire un tableau colonne par colonne ?
    Par Cthulhu 22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 11/05/2005, 15h31
  5. [VB.NET] Écriture par colonne streamwriter...?
    Par Pleymo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 15/04/2005, 15h32

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