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 :

Actualiser des données a partir dun .xls non enregistré


Sujet :

Access

  1. #1
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut Actualiser des données a partir dun .xls non enregistré
    Jai un fichier xls qui me sert de table dans ma base.

    Ce fichier est ouvert sur un poste et les valeurs sont données à partir d'un outil de bourse et on voit les valeurs qui se mettent automatiquement à jour toutes les secondes.

    Je voudrai que ces valeurs soit modifiées dans la table access à chaque fois que jutilise la table, sans avoir a enregistrer le fichier xls.

    Est ce possible?

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Essaye de lier ton fichier à ta base par comme tu lies une table venant d'une autre base, il me semble que cela dois marcher.

    Starec

  3. #3
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut Re: Actualiser des données a partir dun .xls non enregistré
    Citation Envoyé par hugo69
    Jai un fichier xls qui me sert de table dans ma base.

    Ce fichier est ouvert sur un poste et les valeurs sont données à partir d'un outil de bourse et on voit les valeurs qui se mettent automatiquement à jour toutes les secondes.

    Je voudrai que ces valeurs soit modifiées dans la table access à chaque fois que jutilise la table, sans avoir a enregistrer le fichier xls.

    Est ce possible?

    Merci
    Hello,

    pour comprendre, as-tu besoin de cette info "temps-réel" dans Access ?

    Le problème est que si tu n'enregistres pas sur Excel, Access ne pourra jamais récupérer les valeurs "rafraichies".
    Le code doit donc selon moi venir d'Excel, et dans ce cas tu pourrais parfaitement coder une mise à jour ADO depuis Excel à intervalles régulières.

    Suivant le volume de données à actualiser, soit tu updates tout, soit tu crées une colonne "ancienne valeur" et tu n'updates que celles qui ont changé ...
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  4. #4
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    cest ce qui est fait.

    Mais il prend les valeurs jusquau moment ou jai fait SAVE sur excel, je suis à chaque fois obligé de faire save, il ne prends pas les changement de valeurs jusqua ce que jai fait save.

  5. #5
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut Re: Actualiser des données a partir dun .xls non enregistré
    Hello,

    pour comprendre, as-tu besoin de cette info "temps-réel" dans Access ?

    Le problème est que si tu n'enregistres pas sur Excel, Access ne pourra jamais récupérer les valeurs "rafraichies".
    Le code doit donc selon moi venir d'Excel, et dans ce cas tu pourrais parfaitement coder une mise à jour ADO depuis Excel à intervalles régulières.

    Suivant le volume de données à actualiser, soit tu updates tout, soit tu crées une colonne "ancienne valeur" et tu n'updates que celles qui ont changé ...
    tu as bien compris mon problème.
    C'est la première solution quil me faut. Pourrais tu avoir la gentillesse de me donner une idée de comment proceder pour une mise à jour ADO, je ne sais pas comment faire. Ca reviens au meme que si je programme une sauvegarde toutes les x secondes mais cest moins lourd cest ca?

  6. #6
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    en gros ce qui pourrait etre pas mal ca serait de faire une boucle infini sur le code suivant en inserant une pause .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Macro1()
    '
     
     
    '
        ActiveWorkbook.Save
    End Sub

    A L'AIDE!!!

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Mais les valeurs dans excel sont raffraichies comment ? toutes les secondes... ? ne peu tu pas faire une sauvegarde à ce moment la ?

  8. #8
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    oui cest le but par exemple.

    Les valeurs sont en fait des liens DDE vers un soft genre bloomberg/telekurs.

    Le top serait de lui dire de sauvegarder toutes les 5 secondes le fichier, mais je ne sais pas comment faire.

  9. #9
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Utilise onTime ... par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sub ProcPeriodique()
      Application.OnTime Now + TimeValue("00:00:05"), "ProcPeriodique"
      ThisWorkbook.Save
    End Sub

  10. #10
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    La fonction marche

    mais,

    GROS PROBLEME: le fichier excel est partagé, mais on ne peut pas avoir de fichier xls partage avec des macros.

  11. #11
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Utilise un autre fichier pour la macro, et remplace ThisWorkbook par celui que tu veux ...
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  12. #12
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    quand tu dis le fichier excel et partagé... ça veu dire quoi ... qu'il est sur un répertoire partagé...?

    pourquoi ne peut'on avoir de fichier xls partagé avec macros ?

    sinon sous access, ne peu tu pas accéder directement au valeur du "soft un soft genre bloomberg/telekurs. " en DDE ?

  13. #13
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    le xls est partagé dans outils, partage du classeur.

  14. #14
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    Citation Envoyé par cafeine
    Utilise un autre fichier pour la macro, et remplace ThisWorkbook par celui que tu veux ...
    jai un fichier lien.xls dans le meme repertoire que mon fichier me servant à utiliser la macro.

    Les deux fichiers sont dans U:

    Que dois je mettre exactement à la place de ThisWorkbook?

  15. #15
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    Citation Envoyé par bbil
    quand tu dis le fichier excel et partagé... ça veu dire quoi ... qu'il est sur un répertoire partagé...?

    pourquoi ne peut'on avoir de fichier xls partagé avec macros ?

    sinon sous access, ne peu tu pas accéder directement au valeur du "soft un soft genre bloomberg/telekurs. " en DDE ?

    Pour les liens DDE, je narrive pas, ou ne sais pas comment utilisé les liens DDE à l'intérieur d'access. C'est un peu mon rêve et ca me faciliterait grandement la vie, mais malgré mes recherches je ne sais pas quel critères mettre sur ma table.

    Dans excel ca donne ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =vegadde|VEGA!'720128,25,814@"1,\"12,0,1\"",1'
    Non, apparement, on ne peux pas mettre de macro sur un xls partagé, ca me dit que ce nest pas possible de mettre de macro sur un fichier partagé.

  16. #16
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    tu as essayer par macro VBA... du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MonCanal= DDEInitiate("vegadde", "VEGA")
    MaMesure = DDERequest(MonCanal, "720128,25,814@""1,\""12,0,1\"""",1")
    DDETerminate (MonCanal)
    Debug.print MaMesure


    PS: Pour les Guillemets dans l'Item.. je sais pas .. je les aient doublées ...

  17. #17
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    je suis pas un fou sur vba et jy comprends pas grand chose.

    Jai fait un module et jai mis dedans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function maj()
    MonCanal = DDEInitiate("vegadde", "VEGA")
    MaMesure = DDERequest(MonCanal, "720128,25,814@""1,\""12,0,1\"""",1")
    DDETerminate (MonCanal)
    Debug.Print MaMesure
    End Function
    apres jappelle la fonction maj dans une requete.

    Cest ca quil faut faire? quand tu me dis que tu as doublé les guillements de litems, cest koi litem? a quel endroit il faut exactement que jessai avec des simples ou des douvbles? le premier et le dernier de lexpression dans mamesure? si cest ca ca me fait une erreur


    avec mon code la haut, ca ne maffiche rien du tout.

  18. #18
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    voila mon code:

    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
    Function maj(code As String) As Double
     
    MonItem = code
    MonCanal = DDEInitiate("vegadde", "VEGA")
    MaMesure = DDERequest(MonCanal, "897789,148,1@""1,\""33,2,1\"""",1")
    DDETerminate (MonCanal)
    Debug.Print MaMesure
    maj = MaMesure
     
     
     
     
     
     
    End Function
    Donc avec ca ca marche si jappelle la fonction maj ca appel la bonne valeur.

    Je suis super content.
    PAr contre, jai pas mal de produit à configurer et il me faudrait un truc du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function maj(code As String) As Double
     
    MonCanal = DDEInitiate("vegadde", "VEGA")
    MaMesure = DDERequest(MonCanal, code)
    DDETerminate (MonCanal)
    Debug.Print MaMesure
    maj = MaMesure
     
     
     
     
     
    End Function
    mais la ca me met des message derreurs...une idee?
    Dans code (champs texte) je met par exemple: "897789,148,1@""1,\""33,2,1\"""",1"

  19. #19
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    pour item , voir aide en ligne VBA
    Citation Envoyé par Aide en ligne
    DDERequest, méthode


    Utilise un canal d'échange dynamique de données (DDE) pour requérir des informations provenant de l'application destinataire, et renvoie ces informations sous la forme d'une chaîne.

    Syntaxe

    expression.DDERequest(Channel, Item)

    expression Facultatif. Expression qui renvoie un objet Application.

    Channel Argument de type Long obligatoire. Numéro de canal renvoyé par la méthode DDEInitiate.
    sinon pour les erreurs, faudrai savoir qu'elle erreur ? sur qu'elle ligne ...
    vérifie la chaine que tu uitilise comme Item ...

    utilise
    pour l'afficher dans fenêtre exécution ... je ne connais pas le serveur DDE .. VegaDDE ( mesure de niveau ?) .. et je ne connais donc pas le format de ses Items ( variables...) ainsi que la place des "..

    sinon entre DDEInitiate ... et DDETerminate .. tu peu lire plusieurs valeurs en echainant des DDEREquest... ..
    je pense que tu dois pouvoir ouvrir le canal au lancement de ton application ... et le fermer à la sortie..

  20. #20
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    A mon avis le problème viens de la construction de la chaine de l'item.

    Maintenant que ca marche à quelque chose prêt, je me rends compte dun truc evident.

    Lapplication serveur DDE ne peut etre ouverte que par une personne qui est sur un pc client.

    Donc il ny a aucun moyen simple de rappatrier les données sur la table pour tout le monde par le biais de la requete, donc on est obligé de faire une exportation vers une table, et cela revient à peu pres au meme que de faire une importation de excel sur une intervalle de temps predefini....

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/09/2006, 11h50
  2. Réponses: 3
    Dernier message: 09/09/2006, 13h24
  3. [Excel] Extraire des données d'un fichier xls en php
    Par splinternabs dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 06/04/2006, 09h11
  4. [PL/SQL] Saisir des données a partir du clavier
    Par future dans le forum Oracle
    Réponses: 11
    Dernier message: 30/03/2005, 12h12
  5. [CR7]Actualisation des données depuis VB
    Par elifqaoui dans le forum SDK
    Réponses: 4
    Dernier message: 24/11/2003, 13h44

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