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 :

Problème de mise à jour Access=>Excel


Sujet :

Access

  1. #1
    Membre régulier Avatar de DeFCrew
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 167
    Points : 94
    Points
    94
    Par défaut Problème de mise à jour Access=>Excel
    Bonjour à toutes et à tous.

    Voilà, je travail sous Access 2000, et j'aurais aimé savoir s'il était possible de mettre à jour dans une zone de liste, des modifications apportées à un sous-formulaire de la table principale (liée à Production.xls), par le biais de zones de liste modifiables.

    /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\

    Exemple :

    Le fichier Production.xls lié à Access comporte plusieurs colonne dont 6 pour décrire l'avancement d'une production quelconque. (Assemblage, Mise en place, Montage,Test,Emballage,Envoi.).

    Chacune de ces 6 colonnes est reliée à une zone de liste modifiable proposant "Démarré" et "Terminé" comme unique choix sous Access.
    Comme prévu, lorsqu'on clique un choix de la liste modifiable celui-ci ce répercute automatiquement sous Excel.

    Ces informations n'apparaissent pas dans la zone de liste récapitulative car je me suis arranger sous Excel pour que Production.xls comporte une colonne "Status" m'indiquant l'état d'avancement (de 1 à 6) en fonction des réponses. (=SI(L2 = "Terminé";1;0)+SI(M2 = "Terminé";1),etc...)

    Maintenant voici mon problème :

    Lorsque je quitte le sous-formulaire pour revenir sur la zone de liste récapitulative, et que j'ai modifié l'état d'avancement de la production du sous-formulaire, la logique voudrais que la colonne "Status" soit incrémenté ou décrémenter.

    C'est le cas sous Excel mais pas sous Access . Il faut d'abord que je réenregistre le doc.xls pour que la mise à jour soit efféctuée.

    Y a t-il un moyen automatique pour sauvegarder un document Excel sous Acces ?

    Y a t-il une autre solution surtout ?

    En éspérant que ma question soit bien formulée.
    Merci d'avance
    "Si tu tape ta tête contre une cruche, et que ça sonne creux...n'en déduit pas pour autant que c'est la cruche qui est vide !"
    Lao Tseu

  2. #2
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Bonjour,

    Tu peux bien sûr enregistrer la feuille Excel, mais ce sera long, alors que tu veux un résultat immédiat.

    Pourquoi ne pas rajouter, dans la requête source du formulaire, un champ calculé, avec la même formule que ta cellule Excel ? (ou un équivalent Access, basé sur les noms des autres champs)
    Le résultat sera directement affiché, à chaque changement de valeur d'un des champs.
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  3. #3
    Membre régulier Avatar de DeFCrew
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 167
    Points : 94
    Points
    94
    Par défaut
    Bonjour,

    En effet, ce que je recherche est un effet immédiat.
    C'est pourquoi l'enregistrement fastidieux ne me convient pas.

    A vrai dire, la réponse que tu m'a donnée est celle à laquelle j'ai pensé en première.

    Le hic, c'est que je n'arrive pas à voir comment faire la même chose sous Access, c'est pourquoi je l'ai fait sous Excel.

    Me voilà déjà rassuré sur le fait qu'on n'est pas obligé de passer par Excel.

    Saurais-tu comment le faire ?
    "Si tu tape ta tête contre une cruche, et que ça sonne creux...n'en déduit pas pour autant que c'est la cruche qui est vide !"
    Lao Tseu

  4. #4
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Sans connaître le détail de ta formule, tu devrais pouvoir la recopier dans l'en-tête du champ, en remplaçant les 'SI' par des 'Iif', etc.
    N'oublie pas de tester la requête morceau par morceau (chaque partie de la formule, au fur et à mesure que tu la complètes).

    Si tu n'y arrives pas, colle nous la formule Excel et les noms des champs concernés (sous Access), et on verra ça ensemble.

    D'après ce qu'on voit, ça commencerait comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Status: IIf([Assemblage] = "Terminé";1;0) + IIf([Mise en place]= "Terminé";1;0) + ...
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  5. #5
    Membre régulier Avatar de DeFCrew
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 167
    Points : 94
    Points
    94
    Par défaut
    Comme tu me la dit, j'ai simplement mis la formule dans la table à la première case de la colonne Status sous Access avec les IIF au lieu des SI.

    Lorsque je tape ENTRER pour confirmer la formule, Access m'affiche un message me signalant que j'ai dû entrer des lettres au lieu des chiffres et que du coup sa fonctionne pas.

    Peut-être parce que mon doc Excel est lié ?

    De même, j'aimerai bien que cette fomule s'applique automatiquement et que je n'est pas besoin de rentrer la formule plusieurs fois de suite.

    Voici la formule Excel :
    =SI(L2 = "Terminé";1;0)+SI(M2 = "Terminé";1)+SI(N2 = "Terminé";1)+SI(O2 = "Terminé";1)+SI(P2 = "Terminé";1)+SI(Q2 = "Terminé";1)

    Le nom des colonnes liées sous Access :
    Dans la table Medias ==> Assemblage, MEP,Montage,Platine,Test,Emballage


    Et un Grand MERCI a toi Papy Turbo pour ton aide.
    "Si tu tape ta tête contre une cruche, et que ça sonne creux...n'en déduit pas pour autant que c'est la cruche qui est vide !"
    Lao Tseu

  6. #6
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Citation Envoyé par DeFCrew
    j'ai simplement mis la formule dans la table à la première case de la colonne Status sous Access avec les IIF au lieu des SI.
    Je ne comprends pas où tu as essayé de mettre cette formule.
    Dans ta requête, soit tu sélectionnes un champ (par son nom), soit tu mets une formule pour créer un autre champ calculé. C'est le deuxième cas qui nous intéresse, donc faut lui donner un autre nom que le champ 'Status', sinon erreur.
    Essaye 'Statut:IIf(...)' ?

    Citation Envoyé par DeFCrew
    Lorsque je tape ENTRER pour confirmer la formule, Access m'affiche un message me signalant que j'ai dû entrer des lettres au lieu des chiffres et que du coup sa fonctionne pas.
    Ben, ça, ça veut dire que tu t'es planté dans ta formule . Faute de syntaxe. Faut réessayer et corriger jusqu'à ce que ça marche...
    Sinon, colle nous tes essais de formule et on verra ce qui plante.
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  7. #7
    Membre régulier Avatar de DeFCrew
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 167
    Points : 94
    Points
    94
    Par défaut
    Merci Papy Turbo,

    Après de nombreux essai je me suis rendu compte qu'il n'est pas possible de travailler qu'à partir d'une table comme je l'ai fait.

    J'ai eu un peu de mal, finalement j'ai crée une requête issu de la table principale et la, dans la requête en mode création de requête SQL j'ai pu entrer la formule que tu m'a si bien indiqué.

    Merci pour ton aide encore une fois ell m'a été d'une grande utilité.
    J'aurai juste une dernière question :

    Comment fais t-on pour choisir des couleurs de fond personnalisé ?
    Car Access n'en propose que très peu à ce que jai vu...

    Merci pour ta réponse.
    "Si tu tape ta tête contre une cruche, et que ça sonne creux...n'en déduit pas pour autant que c'est la cruche qui est vide !"
    Lao Tseu

  8. #8
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Bon, alors je suis très déçu que ça marche comme ça.
    Etant vicieux, j'attendais que ça marche pour simplifier encore la formule :
    - Etant donné que la valeur "Vrai" (True) = -1 et la valeur "Faux" (False) = 0,
    - l'expression ([Assemblage] = "Terminé") vaudra -1 si elle est vraie, et 0 sinon,
    - tu peux donc supprimer tous les IIF() de la formule !
    Et ça donnerait quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Status: -([Assemblage] = "Terminé") - ([Mise en place]= "Terminé") - ...
    Ca, c'était pour les pinailleurs

    Pour les couleurs de fond, je pense sincèrement que tu devrais chercher peut être le forum, la Faq, etc. ? et, si tu ne trouves rien, poser une question séparée. Il n'y a vraiment pas de rapport avec notre problème, et ça n'aide pas les gens qui cherchent si le titre ne correspond pas au sujet traité !

    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

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

Discussions similaires

  1. Mise à jour Access via Excel
    Par sl1980 dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/10/2007, 18h43
  2. Réponses: 10
    Dernier message: 11/01/2007, 10h22
  3. Problème de mise à jour sous Access
    Par ash_rmy dans le forum Access
    Réponses: 3
    Dernier message: 24/07/2006, 13h51
  4. [C#][Access]Problème de mise à jour des données
    Par vvvvv dans le forum ASP.NET
    Réponses: 10
    Dernier message: 11/04/2006, 10h43
  5. Access Problème avec mise à jour données
    Par Yanmeunier dans le forum Access
    Réponses: 2
    Dernier message: 30/03/2006, 16h05

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