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 :

exécution TRES lente de Vba sous access. Grande Taille, compacter?


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut exécution TRES lente de Vba sous access. Grande Taille, compacter?
    Bonjour tout le monde,
    J'ai une grande base de données sous acces surlaquelle je travaille sous vba.
    Une de mes procédures fait des tests sur 600,000 lignes et crée ensuite une table sous acces(via la commande: rst.edit, rst!champ="",rst.update...
    La procédure prend énormément de temps. Alors qu'hier bizarrement ça avait marché. J'ai essayé de compacter le fichier mais c'est toujours tres grand(664Mo).
    Existe-t-il une autre facon pour compacter les données que:utilitaire analyse/compacter données?
    Et existe -t-il une autre façon pour créer une table access à partir d'une variable tablo de vba directement et non pas ligne par ligne?

    Merci d'avance pour les personnes qui se sont intéressées à mon pb.
    Bonne journée

    (ps: le but de la procédure, c'est qu'à partir d'une table d'âge sous acces, j'affecte des classes d'age que j'ai déjà stocké dans une variable tablo string...)

  2. #2
    Membre éprouvé Avatar de jean-paul lepetit
    Inscrit en
    Février 2005
    Messages
    842
    Détails du profil
    Informations personnelles :
    Âge : 68

    Informations forums :
    Inscription : Février 2005
    Messages : 842
    Points : 919
    Points
    919
    Par défaut
    Salut,

    Tu ne peux pas faire ça avec une requête création de table ?
    Ils ne savaient pas que c'était impossible, alors il le réalisèrent (Mark Twain)

  3. #3
    Membre averti Avatar de dr_feelgood
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 292
    Points : 373
    Points
    373
    Par défaut
    Je ne peux pas t'aider sur la question de la lenteur et de la taille de ta base

    par contre

    ps: le but de la procédure, c'est qu'à partir d'une table d'âge sous acces, j'affecte des classes d'age que j'ai déjà stocké dans une variable tablo string...)
    Tu n'a peut être pas besoin de créer des tables classe d'âge....

    Pour une application, j'avais besoin de classes d'âge, et je me suis contenté de créer une fonction classe d'âge avec 2 arguments:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A= ClasseDage (age, "18,25,30,45")
    qui me retourne la classe d'âge en fonction de l'âge.

    Je posterai la fonction en détail cette après midi. En espérant que cela puisse t'aider
    .
    less is more

    vous pouvez faire une recherche dans le forum
    et également une recherche dans les FAQ

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Salut Jean-Paul,
    Effectivement j'aurai u le faire par une requete sous access directement. Mais dans mon programme, les classes et les âges changent: je demande à l'utilisateur d'entrer l'intervalle qu'il souhaite des classes. Donc étant paramétré, je n'ai pas su prendre en compte ces paramètres dans une requête.

    Merci

  5. #5
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,
    Citation Envoyé par galaguiloe
    Existe-t-il une autre facon pour compacter les données que:utilitaire analyse/compacter données?
    non, enfin si il y a l'équivalent en VBA mais ça fera la même chose.
    Et existe -t-il une autre façon pour créer une table access à partir d'une variable tablo de vba directement et non pas ligne par ligne?
    Tu parles d'insérer des données ??
    (ps: le but de la procédure, c'est qu'à partir d'une table d'âge sous acces, j'affecte des classes d'age que j'ai déjà stocké dans une variable tablo string...)
    As tu regardé ceci :
    http://access.developpez.com/sources...#FonctionPlage
    Cela pourrait t'inspirer pour les tranches d'âge.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Feelgood,
    L'idée de la fonction sera bonne, si je pourrais l'utiliser dans la requête.
    (j'ai remarqué que dans les requêtes, il y a les fonctions(ou procédure) implémentées dans vba.)
    SAurais tu comment cela marche? Car j'ai essayé avec une fonnction simple(appelé essai et prenant un nombre en paramètre), mais j'y arrive pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT essai([Critere]![Numero]) AS Expr1]) FROM Critere;

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Ah c'est bon, je suis arrivée à lancer une fonction à partir de la requête. J'espère maintenant pouvoir alléger le programme.
    Merci à tous

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

Discussions similaires

  1. Problemes avec grosseur de requete en VBA sous Access
    Par acheo dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 12/04/2007, 11h58
  2. [ETAT]VBA sous access
    Par garfalek dans le forum VBA Access
    Réponses: 5
    Dernier message: 02/04/2007, 20h47
  3. code vba sous access
    Par lifemaker2025 dans le forum Access
    Réponses: 33
    Dernier message: 16/02/2007, 15h17
  4. [VB6]Exécution tres lente
    Par Franck2mars dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 08/02/2007, 07h56
  5. execute une macro via vba sous access
    Par nes dans le forum Access
    Réponses: 4
    Dernier message: 28/03/2006, 23h15

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