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 :

Gestion des tables Access et vba


Sujet :

Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Août 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Août 2015
    Messages : 15
    Points : 8
    Points
    8
    Par défaut Gestion des tables Access et vba
    Bonjour/Bonsoir

    dans le cadre de mon travail, j'ai due apprendre à coder sur access afin de pouvoir tirer des stat d'une boite mail. Cela impliqué chaque dossiers, sous-dossiers, sous-sous-dossiers etc...
    Débutant complet, ça n'a pas été simple mais j'y suis arrivé Cependant, niveau souplesse, c'est pas ça....

    En simple ça donne (car je n'ai pas l'autorisation hiérarchique pour communiquer le code :s):
    Création d'une table dans access "lier à la source de données" pour chaque dossiers et sous-dossiers etc... (ex: table1 pour dossier1, table2 pour sous-dossier2 etc...)
    Ensuite, en vba: une variable "" pour chaque tables (en dur donc note(1)=table1 note(2)=table2 etc.... bonjour la souplesse)
    toujours en vba: set rec =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     CurrentDb.OpenRecordset(note(k), dbOpenSnapshot)
    et mon traitement pour chaque valeur de k

    Donc je me demande s'il y a moyen pour rendre cela plus souple car, si un dossier est renommé/déplacé/supprimé dans ma boite mail, alors le code passe hs et je dois refaire la table correspondante au dossier pour qu'il fonctionne à nouveau

  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,

    Pourquoi ne pas boucler sur la liste des tables ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim tbl as tabledef
     
    for each tbl in currentdb.tabledefs
         CurrentDb.OpenRecordset(tbl.name, dbOpenSnapshot)
         ...
    next
    Ce code ne peut être utilisé en l'état, c'est juste pour donner une idée de la syntaxe à utiliser. Il manque les contrôles sur le type de table (système ou utilisateur)...

    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
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Août 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Août 2015
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Bonjour Loufab,

    merci pour l’intérêt que tu porte à ma demande

    Je vais tester cela le plus rapidement possible (effectivement, en l'état, il essaye de me traiter la table MySysAccessStorage notamment)n je regarde comment gérer les contrôles et reviens par ici au plus vite.

  4. #4
    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
    Dans la faq tu as tout ce qu'il faut pour ce genre de chose.
    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

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Août 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Août 2015
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    ça fonctionne parfaitement merci !
    Pour la faq, j'essaye d'y regarder à chaque fois, mais c'est parfois un peu compliqué quand on sait pas vraiment ce qu'on cherche ^^"

    Pitite question (et je cherche dans la faq en parallèle ) : peut on encore assouplir le système en n'ayant pas des tables rigides (tables défini en dur comme fait actuellement) mais plutôt soit en générant les tables au lancement de la macro (ce qui va certainement allongé la durée d’exécution) , ou alors en en ne créant pas de table mais en allant chercher directement les données sur outlook ? Ou une autre possibilité ?
    edit: un collègue m'a parlé de requête SQL, j'avoue ne rien y connaitre donc je sais pas si ça serait adapté

  6. #6
    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,

    Au lieu de faire de l'import tu peux lier les tables.

    Utilise le ruban Données Externes, Importer et lier, Plus, Dossier Outlook, Lier la source (3ème option), Ok
    Sélectionne ton compte mail et le dossier concerné, Suivant, Nomme-le. Terminer.

    Ton dossier est à présent une table liée, comme une table classique mais représentant en temps réel les données de ton mail.

    Ton code n'a pas besoin d'être modifié. Sauf peut être ton tableau de nom de table.

    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

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Août 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Août 2015
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Bonjour Loufab,

    c'est actuellement la méthode que j'utilise effectivement, du coup le problème que je rencontre c’est que si un dossier est renommé/déplacé/supprimé alors la table ne fonctionne plus, et par extension mon code

  8. #8
    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
    A part détecter le problème et proposer de refaire l'attache il n'y a pas beaucoup de solution.

    Pour refaire l'attache tu peux paramétrer la propriété connect de la table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    currentdb.tabledefs("nom de la table").connect
    C'est une chaine facilement modifiable.
    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

Discussions similaires

  1. [AC-2007] Délier des tables Excel avec VBA ACCESS
    Par FramanKalima dans le forum Access
    Réponses: 4
    Dernier message: 30/07/2015, 10h08
  2. [FAQ] [Access 2007] Gestion des pièces jointes en VBA
    Par Tofalu dans le forum Contribuez
    Réponses: 4
    Dernier message: 04/07/2006, 00h16
  3. [VBA Excel] Importer des tables Access dans Excel
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/12/2005, 11h44
  4. Réponses: 2
    Dernier message: 11/05/2004, 11h17
  5. Gestion des Tables d'Object
    Par Laurent Dardenne dans le forum SQL
    Réponses: 27
    Dernier message: 17/04/2004, 12h39

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