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

Access Discussion :

Aide sur code VBA


Sujet :

Access

  1. #1
    Membre régulier Avatar de omen123
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2015
    Messages : 340
    Points : 100
    Points
    100
    Par défaut Aide sur code VBA
    Bonjour les amis ,

    j'ai un petit souci avec une requête. enfaite j'ai une table nommé BTA elle contient 400.000 lignes , sur cette table il y a une requête nommée RQ_MAJ_REF_AUTO_GLOBAL . j'ai crée un module qui ce base sur cette requête afin de me generer un resultat .

    le problème c'est que ce module s 'exécute sur 4 heures ou plus . cette requête m'a été créeé par un membre du grouppe il y a 4 ans de cela et ca marchait parfaitement - durée d exaction est de 10 min . mais j 'ai oublié comme il a fait pour optimiser la durée de plus j'ai fais des modif je crois que j'ai tt bousiller klk pourrais m aider plzNom : bta.png
Affichages : 86
Taille : 233,7 KoNom : module.png
Affichages : 80
Taille : 94,4 KoNom : ref auto.png
Affichages : 85
Taille : 108,0 Ko.

    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
    Function fNumeroterSerie()
    Dim odb As DAO.Database
    Dim oRst As DAO.Recordset
    Dim stRupture As String, stRuptClient As String
    Dim lgCompteur As Long
     
    Set odb = CurrentDb
    Set oRst = odb.OpenRecordset("RQ_MAJ_REF_AUTO_GLOBAL", dbOpenDynaset)
    stRuptClient = ""
    lgCompteur = 0
    Do Until oRst.EOF
        If Nz(oRst!CFR, "") <> stRuptClient Then
                ' rupture sur le client
                lgCompteur = 0
                stRuptClient = Nz(oRst!CFR, "")
                stRupture = ""
        End If
                ' Rupture sur le code si nul ou même série
        If Nz(oRst.Fields("CUMMULABLE_OLD"), "") <> stRupture Then
            stRupture = Nz(oRst.Fields("CUMMULABLE_OLD"), "")
            If oRst.Fields("NbOccur") > 1 Then lgCompteur = lgCompteur + 1
        End If
        oRst.Edit
        ' si le nombre d'occurences est égal à 1 on vide le champ sinon on met la valeur du compteur du groupe
        If oRst.Fields("NbOccur") = 1 Then oRst.Fields("CUMMULABLE") = Null _
            Else: oRst.Fields("CUMMULABLE") = lgCompteur
        oRst.Update
        oRst.MoveNext
    Loop
    oRst.Close
    Set odb = Nothing
     
    End Function
    Aux incompétents je dis merci ,grâce à vous je progresse !

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    c'est moi qui t'ai donné le code ...
    quelques précisions:
    - quand tu ouvres la requête en mode "Affichage" et que tu veux aller au dernier enregistrement, combien de temps cela prend ?
    - les champs CFR et CUMMULABLE_OLD sont ils indexés (il y a 4 ans, c'étaient les champs REF_TIERS et REF_AUTO_GLOBAL_OLD qui l'étaient) ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre régulier Avatar de omen123
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2015
    Messages : 340
    Points : 100
    Points
    100
    Par défaut
    bonjour TEE ,

    c est exact c était ton code , j'ai fais la requête alors juste pour :

    - l affichage --> plus de 11 min
    - pour atteindre le dernier enregistrement --> 2 min et toute l application bloque !

    les champs CFR et CUMMULABLE_OLD sont ils indexés : oui

    (il y a 4 ans, c'étaient les champs REF_TIERS et REF_AUTO_GLOBAL_OLD qui l'étaient) --> il s agit d une autre requête , j'ai fais klk changement je crois que c est ca qui tous fais bousiller

    quand je fais le test sur 100 ligne ca marche tres bien . reste a verifier apres le resultat.

    ps : j ai mis la base en piece jointe
    Fichiers attachés Fichiers attachés
    Aux incompétents je dis merci ,grâce à vous je progresse !

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    NUM_TIERS est-il aussi indexé ?
    et quand tu enlèves le champ calculé NbOccur, combien de temps pour afficher le dernier ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Citation Envoyé par omen123 Voir le message
    bonjour TEE ,

    c est exact c était ton code , j'ai fais la requête alors juste pour :

    - l affichage --> plus de 11 min
    - pour atteindre le dernier enregistrement --> 2 min et toute l application bloque !

    les champs CFR et CUMMULABLE_OLD sont ils indexés : oui

    (il y a 4 ans, c'étaient les champs REF_TIERS et REF_AUTO_GLOBAL_OLD qui l'étaient) --> il s agit d une autre requête , j'ai fais klk changement je crois que c est ca qui tous fais bousiller

    quand je fais le test sur 100 ligne ca marche tres bien . reste a verifier apres le resultat.

    ps : j ai mis la base en piece jointe
    en .zip les bases s'il te plait ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Membre régulier Avatar de omen123
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2015
    Messages : 340
    Points : 100
    Points
    100
    Par défaut
    ca prend une seconde
    Aux incompétents je dis merci ,grâce à vous je progresse !

  7. #7
    Membre régulier Avatar de omen123
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2015
    Messages : 340
    Points : 100
    Points
    100
    Par défaut
    il y a un probleme sur le site aujourd hui , il n accepte pas le format zip c pour ca je l ai fait fomat Z z
    Aux incompétents je dis merci ,grâce à vous je progresse !

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    il y a un probleme sur le site aujourd hui , il n accepte pas le format zip c pour ca je l ai fait fomat Z z
    c'est pourtant natif dans Windows !

    Nom : Win_Zipper.jpg
Affichages : 73
Taille : 42,6 Ko
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  9. #9
    Membre régulier Avatar de omen123
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2015
    Messages : 340
    Points : 100
    Points
    100
    Par défaut
    la base fait 50 mega , je crois que le site n accepte pas une tel capacité . pour le zipper je l ai deja fait
    Aux incompétents je dis merci ,grâce à vous je progresse !

  10. #10
    Membre régulier Avatar de omen123
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2015
    Messages : 340
    Points : 100
    Points
    100
    Par défaut
    Apparement le fichier zip ne doit pas dépasse les 2mega je crois.

    Nom : zip.png
Affichages : 72
Taille : 149,6 Ko
    Aux incompétents je dis merci ,grâce à vous je progresse !

  11. #11
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    il faut que tu me donnes une base allégée (avec un millier d'enregistrements maxi)
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  12. #12
    Membre régulier Avatar de omen123
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2015
    Messages : 340
    Points : 100
    Points
    100
    Par défaut
    re bonjour TEE ,

    voila la base , juste pour INFO , sur un nombre de 10 000 enregistrement la requete marche bien et fais en envirion de 5 min .

    merci
    Fichiers attachés Fichiers attachés
    Aux incompétents je dis merci ,grâce à vous je progresse !

  13. #13
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    en ZIP, merci
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  14. #14
    Membre régulier Avatar de omen123
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2015
    Messages : 340
    Points : 100
    Points
    100
    Par défaut
    Rebonjour Tee , desolé j'ai pas vu la forme voila l'app en piece jointe
    Fichiers attachés Fichiers attachés
    • Type de fichier : zip Z1.zip (71,1 Ko, 12 affichages)
    Aux incompétents je dis merci ,grâce à vous je progresse !

  15. #15
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    merci.
    Dans la foulée, peux-tu m'envoyer plus d'enregistrements de 01 BTA ?
    Regarde combien cela fait 10 000 enregistrements zippés. si c'est plus de 2 Mo, envoie la table en découpant en plusieurs bases et en envoyant plusieurs messages
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  16. #16
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Citation Envoyé par omen123
    les champs CFR et CUMMULABLE_OLD sont ils indexés : oui
    déjà, je constate que non pour CUMMULABLE_OLD:

    Nom : _0.JPG
Affichages : 52
Taille : 89,1 Ko

    de plus, il serait bien d'indexer également NUM_TIERS puisqu'il sert dans le comptage du champ calculé NbOccur dans la requête RQ_MAJ_REF_AUTO_GLOBAL

    Essaie déjà avec ces modifications et si ce n'est pas plus rapide, il faudrait envisager d'ajouter un numéro auto pour avoir une clé primaire unique cela peut peut-être accélérer le traitement.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  17. #17
    Membre régulier Avatar de omen123
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2015
    Messages : 340
    Points : 100
    Points
    100
    Par défaut
    voila j'ai esseye de decouper, si t as besoin d'autres enregistrement fais moi signe
    Fichiers attachés Fichiers attachés
    • Type de fichier : zip Z3.zip (218,0 Ko, 12 affichages)
    • Type de fichier : zip Z4.zip (339,7 Ko, 11 affichages)
    • Type de fichier : zip Z2.zip (228,8 Ko, 15 affichages)
    • Type de fichier : zip Z1.zip (71,1 Ko, 14 affichages)
    Aux incompétents je dis merci ,grâce à vous je progresse !

  18. #18
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    temps de traitement des 14317 enregistrements avec index sur CFR seulement: 3mn 40s

    temps de traitement des 14317 enregistrements avec index sur CFR, CUMMULABLE_OLD et NUM_TIERS : 10s

    il n'y a pas photo !

    tu sais maintenant ce qu'il faut faire quand un traitement est trop long: les créations d'index, c'est primordial sur les champs utilisés pour des sélections ou des tris quand on traite des centaines de milliers d'enregistrements
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  19. #19
    Membre régulier Avatar de omen123
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2015
    Messages : 340
    Points : 100
    Points
    100
    Par défaut
    re bonjour TEE ,

    vraiment je sais pas ce qui s est passé !! je suis sur que j'ai fait l index sur les deux champs . j'ai regeneré les 400 000 enregistrements durée --> 14 min .je suis tres satisfait .

    j'ai fait une verification aleatoire j'ai remarqué que j'ai le chiffre : 0 au niveau du champs cummulable normalement soit c est vide ou bien 1 ,2;3;4 ....

    Nom : FOTO 3.png
Affichages : 49
Taille : 83,9 Ko
    Images attachées Images attachées  
    Aux incompétents je dis merci ,grâce à vous je progresse !

  20. #20
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    rappelle-moi la règle de mise à jour du champ ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. aide sur code VBA
    Par omen123 dans le forum VBA Access
    Réponses: 62
    Dernier message: 20/03/2019, 20h24
  2. [XL-2003] Aide sur code VBA sur Excel
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/03/2013, 17h14
  3. [XL-2007] Aide sur code vba copier/coller
    Par youlig dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 07/03/2013, 11h28
  4. [XL-2007] Besoin d aide sur code vba
    Par alexandrek dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/01/2011, 17h10
  5. [XL-2000] Aide sur Code VBA
    Par Dan21 dans le forum Excel
    Réponses: 3
    Dernier message: 08/02/2010, 14h38

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