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 :

Remplir une base Access a partir de fichiers Excel [AC-2013]


Sujet :

Access

  1. #21
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour Ludi,


    4 colonnes ? on ne fait pas autant de colonnes qu'il y a de variables différentes ?
    Sûrement pas.
    Où en es-tu dans la lecture des 2 tutoriels d’apprentissage d’Access que je te suggérais dans mon billet N° 14 ?

    (En fait il s'agirait plus du numéro de la pièce pour pouvoir analyser seulement celle ayant eu le problème, mais pour instant cette donnée n'est pas connue)
    Cela nécessite sans doute une colonne supplémentaire dans la table, il est donc essentiel que tu précises cette notion.

    Un bouton genre .bat ou .exe ne pourrait pas remplir cette fonction ? (les utilisateurs n'auront pas Access sur leur poste).
    De quoi parle-t-on ?
    D’une application développée en Access qui sert
    - à recueillir des données externes sous format .xls ;
    - à stocker ces données en les restructurant ;
    - à redistribuer une sélection de ces données sous la forme de fichiers .xls.

    Il faut bien entendu que l’utilisateur de cette application dispose d’Access.
    Par contre ceux qui utiliseront les fichiers .xls ne doivent pas nécessairement disposer d’Access.

    La position correspond a emplacement sur la machine donc à B1...B6 dans le fichier. A étant B1 et F étant B6
    Pas clair pour moi, d’autant plus que tu as déjà des cases B1...B6 sur le schéma de formulaire.

    Pour aller plus loin, pourrais-tu poster quelques fichiers Excel de données brutes, dans des fichiers Excel distincts chacun avec un nom qui correspond au standard AnneeMoisJourMachine.
    Ce que je te demande, ce sont des exemples pour pouvoir tester le fonctionnement de l’application.
    Il faut donc que ces données de test à importer aient la physionomie des vraies données, peu importe que ces données soient réelles ou non, elles doivent être représentatives.
    Donc les fichiers Excel doivent avoir un nom proche de celui qu’ils porteront en opérationnel et les colonnes doivent présenter la structure opérationnelle, le nom des variables doit être correct.
    Quant au N° de pièce dont il est question plus haut, il faut que tu précises, dès maintenant, comment Access le retrouve à l’input : sera-t-il dans une colonne, ou dans le nom du fichier, ou…


    Pour la confection des graphiques (donc la phase traitement en Excel des données pompées dans la base Access), je ne peux rien pour toi.
    Peut-être qu’un autre participant de ce forum-ci pourra t’aider. (Tu aurais sans doute plus de chances de trouver de l’aide sur les forums dédiés à Excel.)
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  2. #22
    Membre à l'essai
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Points : 10
    Points
    10
    Par défaut
    Merci de ta reponse

    Sûrement pas.
    Où en es-tu dans la lecture des 2 tutoriels d’apprentissage d’Access que je te suggérais dans mon billet N° 14 ?
    Je les ai lu. Donc je n'ai pas tout compris a priori.
    Tu veux dire que cette table serait une table avec liaison directe sur la table contenant le detail des valeurs?

    une table avec, pour l’instant, 4 colonnes : la machine concernée, la variable, l’instant et la valeur
    En fait, comme j'ai plusieurs variable pour meme machine a un meme moment je pensais que l'on ne mettrait cette informations qu'une fois comme dans mon exemple?
    Il y a quelque chose que je ne saisis pas... Puis-je avoir un schema STP?


    Cela nécessite sans doute une colonne supplémentaire dans la table, il est donc essentiel que tu précises cette notion.
    Oui, je dois voir le responsable aujourd'hui ou demain pour trancher cette question. Mais a priori, il y aurait des fichiers Excel ayant meme structure que les autres et contenant le numero des pieces.

    De quoi parle-t-on ?
    D’une application développée en Access qui sert
    - à recueillir des données externes sous format .xls ;
    - à stocker ces données en les restructurant ;
    - à redistribuer une sélection de ces données sous la forme de fichiers .xls.
    Oui c'est cela mais dans ideal, il faudrait que tout cela se fasse sans intervention exterieure. Par exemple via un script mais pour instant, avoir juste bouton et formulaire ira bien ca sera deja parfait. Ton idee me parait tres bien pour notre application

    Il faut bien entendu que l’utilisateur de cette application dispose d’Access.
    Par contre ceux qui utiliseront les fichiers .xls ne doivent pas nécessairement disposer d’Access
    Ok je demandais parce l'entreprise est pauvre en licence et en personne experimentee.

    Pas clair pour moi, d’autant plus que tu as déjà des cases B1...B6 sur le schéma de formulaire.
    Nom : caroussels.PNG
Affichages : 506
Taille : 13,8 Ko
    Je vais essayer d'etre plus clair desole.
    Ceci est un carroussel. Il comporte 6 positions.
    Pour chaque position, nommee dans la realite A...F, on releve les donnees de temperature, burners, tilting (tous les carroussel n'ont pas de tilting car le moule ne bascule pas), etc...
    Ces donnees sont classe et ont un nom qui est B1 ou B2 ... B6
    Donc en fait A...F represente le realite terrain et B1...B6 est la donnee dans le fichier donc c'est la meme chose.

    Ce que je te demande, ce sont des exemples pour pouvoir tester le fonctionnement de l’application.
    Il faut donc que ces données de test à importer aient la physionomie des vraies données, peu importe que ces données soient réelles ou non, elles doivent être représentatives.
    Donc les fichiers Excel doivent avoir un nom proche de celui qu’ils porteront en opérationnel et les colonnes doivent présenter la structure opérationnelle, le nom des variables doit être correct.
    Ok je vais joindre des fichiers type dans l'apres midi

    Quant au N° de pièce dont il est question plus haut, il faut que tu précises, dès maintenant, comment Access le retrouve à l’input : sera-t-il dans une colonne, ou dans le nom du fichier, ou…
    A priori il y aura un fichier Excel de plus contenant tous les numeros avec les dates et heures (meme structure que les autres)

    Pour la confection des graphiques (donc la phase traitement en Excel des données pompées dans la base Access), je ne peux rien pour toi.
    Peut-être qu’un autre participant de ce forum-ci pourra t’aider. (Tu aurais sans doute plus de chances de trouver de l’aide sur les forums dédiés à Excel.)
    Je pense pouvoir trouver comment faire ce canevas.

    Ludi

  3. #23
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    OK, je vais joindre des fichiers types dans l'après-midi
    Je comprendrai sans doute mieux alors, et te donner un exemple du contenu de la table Access.

    Dans les exemples que tu vas poster, essaie d'anticiper la forme que cela aura à propos du N° pièce.

    Je pense pouvoir trouver comment faire ce canevas.
    Je reprécise pour être sûr qu'on se comprend :

    - dans le canevas, la feuille "Données" sera vierge ;

    - ce que fera Access, c'est venir compléter des lignes de la feuille "Données"
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  4. #24
    Membre à l'essai
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Points : 10
    Points
    10
    Par défaut
    Re,

    Je te joints par mail un zip car ici ca me dit : taille fichier trop grande.

    Ce dossier s'appelle exemple mais dans la realite, il s'appelera DATA K1 ou DATA K2 ou DATA K3 ... DATA K8 (il y a 8 carroussels).
    L'interieur du dossier et des fichiers sera formate comme celui-ci, seules les valeurs ont ete changees.

    N'hesite pas si tu as des questions

    Merci,
    Ludi

  5. #25
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    D’après les fichiers que tu m’as fait parvenir, je ne vois pas comment savoir quelle machine est concernée ni le nombre de pièces.
    La machine est-ce DATA K1 ou DATA K2 ou DATA K3 ... DATA K8 ?

    ----------


    Suppose que les données que tu m’as envoyées aient été importées dans la db.
    Je prends l’exemple de Tilting.

    Tu veux ensuite exploiter certaines de ces données pour les mettre en graphique.
    Seras-tu capable de dire alors :

    « Sélectionnez les B6_BASCUL._POSIZ_REALE, de telle machine et de tel instant à tel instant » ?

    En d’autres mots, quel que soit le fichier, il suffit d’importer dans la db :
    VarName ; TimeString ; VarValue (+ le nom de la machine et le nombre de pièces).

    Correct ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  6. #26
    Membre à l'essai
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Points : 10
    Points
    10
    Par défaut
    D’après les fichiers que tu m’as fait parvenir, je ne vois pas comment savoir quelle machine est concernée ni le nombre de pièces.
    La machine est-ce DATA K1 ou DATA K2 ou DATA K3 ... DATA K8 ?
    Oui la machine c'est K1, K2,... K8 ET Donc je pensais qu'on le saurait avec l'emplacement du fichier lors de l'import vers la base, non?

    Tu veux ensuite exploiter certaines de ces données pour les mettre en graphique.
    Seras-tu capable de dire alors :

    « Sélectionnez les B6_BASCUL._POSIZ_REALE, de telle machine et de tel instant à tel instant » ?
    L'exemple du formulaire que je vous ai envoye devait servir a cela. En fait la personne qui exploite les donnees recoit un message d'anomalie. Ce message lui dit : la piece numero X est revenu defectueuse du controle qualite (c'est pour ca qu'on aimerait avoir le numero de la piece). A partir de la, il sait (par experience, donc peu fiable) que cette piece a ete faite entre 12h et 14h par exemple donc il trace des courbes sur le meme graphique pour ces deux heures la. Afin de comparer les TC, les Tilting etc...

    En d’autres mots, quel que soit le fichier, il suffit d’importer dans la db :
    VarName ; TimeString ; VarValue (+ le nom de la machine et le nombre de pièces).
    Il me semble que oui mais qu'on doit inverser lignes/colonnes
    et que je ne sais pas comment gerer le fait qu'il y a un grand nombre de fichiers distincts et que ce nombre est inconnu
    Surtout si on automatise le processus...

    De plus, je sais pas si tu as vu mais dans les fichiers ils y a des Varname qu'on prend pas

    Ludi

  7. #27
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    ... qui exploite les données reçoit un message d'anomalie.
    Cette personne sera-t-elle l’utilisateur disposant d’Access ?

    N’est-ce pas seulement à ce moment-là qu’on devrait alimenter la db ?

    Exprimé autrement : à quoi serviront les données stockées dans la db s’il n’y a pas eu d’alerte qui concerne ces données ?

    ----------

    Autre chose : le processus serait plus simple si tous les fichiers d’une machine étaient dans un même répertoire.
    Essaie de voir, si c’est possible de disposer de tous les fichiers .cvs dans 1 seul répertoire par machine (et non comme maintenant, répartis dans une série de sous-répertoires).

    -----------

    Il me semble que oui mais qu'on doit inverser lignes/colonnes
    Oublie ces notions.

    -----------

    De plus, je ne sais pas si tu as vu mais dans les fichiers il y a des Varname qu'on ne prend pas
    Oui, pas de souci

    ----------

    De ce que tu sais maintenant, où sera logé le N° de pièce ? À l’intérieur du fichier .csv ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  8. #28
    Membre à l'essai
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Points : 10
    Points
    10
    Par défaut
    Cette personne sera-t-elle l’utilisateur disposant d’Access ?
    Aujourd'hui je suis la seule du service a avoir une licence et nous n'avons pas encore defini sur quel poste nous la mettrons. Mais le releve des donnees se fait par 3 personnes differentes car ils ont des carrousels attribues.

    N’est-ce pas seulement à ce moment-là qu’on devrait alimenter la db ?

    Exprimé autrement : à quoi serviront les données stockées dans la db s’il n’y a pas eu d’alerte qui concerne ces données ?
    J'ai demande cela deja et non, ils veulent avoir la base remplie chaque jour "au cas ou" et pour avoir un suivi des donnees. Parfois ils leur arrivent de faire des comparaisons, statistiques etc...

    D'ailleurs il faudra penser a un archivage periodique, j'ai vu qu'on peut vider la base de ses donnees parfois, pour la remplir a nouveau mais moi ils veulent tout garder donc je pensais faire une sauvegarde ailleurs pour qu'ils aient leur historique.

    Autre chose : le processus serait plus simple si tous les fichiers d’une machine étaient dans un même répertoire.
    Essaie de voir, si c’est possible de disposer de tous les fichiers .cvs dans 1 seul répertoire par machine (et non comme maintenant, répartis dans une série de sous-répertoires).
    Vraiment plus simple?
    Je vais voir avec l'automaticien mais les collegues preferaient des sous fichiers pour retrouver leurs donnees (aujourd'hui ils n'ont que les Excel) plus facilement. Donc j'ai un peur de changer cela sans etre sur que notre systeme va marcher dans les temps... Mais je vais essayer de voir si c'est possible. En tout cas si c'est plus simple. Partout du principe que c'est le cas.

    Du coup pour etre sur que j'ai bien compris...
    Le chemin sera : serveur /.../ Annee/ Mois/ Jour/ Data K1 et la tu veux pas qu'on ait de sous dossier mais directement les excels?

    De ce que tu sais maintenant, où sera logé le N° de pièce ? À l’intérieur du fichier .csv ?
    A priori. Ce sera un autre (ou des autres suivant les heures) fichier Excel, de la meme forme avec VarName = count_piece ou number_piece, TimeString comme les autres et Value = numero de la piece.
    Mais personne ne peut me dire aujourd'hui clairement si cette donnee est disponible. Je dois voir un automaticien

    Merci,
    Ludi

  9. #29
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour Ludi,

    Stocker tout et tous les jours ne me semble pas réaliste.
    Si les fichiers que tu m’as transmis sont ceux d’une journée, on parle de 1,4 million de nouvelles données à ajouter dans la base chaque jour !

    Ce serait plus raisonnable de procéder comme ceci : pas d’alerte aujourd’hui => ne rien faire.
    Si alerte
    1° un humain détermine quels fichiers il faut analyser (à l’aide d’un formulaire)
    2° on importe ces fichiers dans la base
    3° on fait le graphique « générique »
    4° on recommence au 1° si nécessaire


    Autre chose : le processus serait plus simple si tous les fichiers d’une machine étaient dans un même répertoire.
    Essaie de voir, si c’est possible de disposer de tous les fichiers .cvs dans 1 seul répertoire par machine (et non comme maintenant, répartis dans une série de sous-répertoires).
    Oublie, on fera avec ce qui existe.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  10. #30
    Membre à l'essai
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Stocker tout et tous les jours ne me semble pas réaliste.
    Si les fichiers que tu m’as transmis sont ceux d’une journée, on parle de 1,4 million de nouvelles données à ajouter dans la base chaque jour !
    A cause de la taille?
    Je me rends compte que cela fait beaucoup de donnees mais aujourd'hui il garde tout et la le but n'etait pas seulement extraction mais aussi rangement.
    Je vais voir avec eux mais si c'est une question de taille, on peut peut-etre creer une base par mois ou par semaine?
    Je pense voir le responsable seulement lundi mais je vais aller dans ton sens. Cela me parait bonne idee

    Si on suit tes etapes, le traitement ne va pas etre long? pour arrivee a etape 3?
    Je veux dire par rapport au fait que les donnees soient deja dans la base et qu'on les extraient juste pour analyse?
    Aujourd'hui ils se plaignent egalement des temps de traitement...

    Merci,
    Ludi

  11. #31
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Oui, à cause de la taille.

    Dans le scénario que je propose, le processus prendra probablement une fraction de seconde, après que l'utilisateur aura spécifié les fichiers à charger.

    Plutôt que sauvegarder la bdd, je sauvegarderais plutôt les fichiers .csv (et ils le sont sans doute déjà).
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  12. #32
    Membre à l'essai
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Points : 10
    Points
    10
    Par défaut
    Aujourd'hui ils utilisent quelque chose comme ca :
    Nom : traitement.PNG
Affichages : 518
Taille : 17,0 Ko

    Est cela que te propose?
    Car cela ne leur convient pas. Il veulent que ce soit "automatique"

    Le formulaire doit vraiment ressembler a celui que je vous ai mis precedemment pour leur gagner du temps car ils font ca tous les jours, plusieurs fois parfois.

    Pour la base, j'ai vu la personne. Si le traitement est "rapide" ca leur convient ta proposition

    Merci,
    Ludi

  13. #33
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Nouveau scénario :
    - on fait en sorte que journellement, tous les fichiers (avec l’arborescence actuelle) soient copiés dans un sous-dossier « FichiersCSV » dans le répertoire de la DB ;
    - quand on ouvre la db, elle se vide de son ancien contenu et se recharge avec les données nouvelles ;
    - imagine qu’une anomalie soit signalée ;
    - l’utilisateur se servirait alors d’un formulaire semblable à ce que tu montrais dans le billet N° 18, pour choisir les données utiles à l’analyse ;
    - on exporte ces données dans Canevas.xls et on affiche celui-ci à l’écran.

    Ça te va, ça ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  14. #34
    Membre à l'essai
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Points : 10
    Points
    10
    Par défaut
    A priori ca pourrait aller.

    Est-on sur de pouvoir avoir n'importe quelles dates? Par exemple s'il me faut donnees de la semaines derniere ou du mois derniers?

    Est-on sur des temps de traitements?

    L'utilisateur aura juste le formulaire a cocher pour avoir analyse qui lui va bien?

    Si tout est oui, alors je pense que c'est ce qu'on desire

    Merci,
    Ludi

  15. #35
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Est-on sûr de pouvoir avoir n'importe quelles dates? Par exemple s'il me faut donner de la semaine dernière ou du mois dernier ?
    Si on a sauvegardé les .cvs de cette date, il suffit de les loger dans le répertoire « FichiersCSV »
    En fait, la db se recharge avec ce qu'elle trouve dans « FichiersCSV »

    Est-on sûr des temps de traitements?
    J'ai quand même besoin de quelques heures pour programmer, je testerai avec les données que tu m'as fait parvenir.
    On parle de 1.4 millions d'enregistrements, c'est pas rien !

    L'utilisateur aura juste le formulaire à cocher pour avoir analyse qui lui va bien?
    Si j'y arrive, oui.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  16. #36
    Membre à l'essai
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Points : 10
    Points
    10
    Par défaut
    Si on a sauvegardé les .cvs de cette date, il suffit de les loger dans le répertoire « FichiersCSV »
    En fait, la db se recharge avec ce qu'elle trouve dans « FichiersCSV »
    D'accord, mais du coup je comprends pas trop pourquoi on les deplace?
    C'est ici que se trouvera l'historique alors?

    J'ai quand même besoin de quelques heures pour programmer, je testerai avec les données que tu m'as fait parvenir.
    On parle de 1.4 millions d'enregistrements, c'est pas rien !
    LOL, je sais mais en gros que l'ordinateur tourne ca sera moins un probleme que la ou ils doivent aller chercher les fichiers un par un pour les temperatures (max 7 insuffisant) et pour tilting, ils recopient a la main donc...

    Si j'y arrive, oui.
    Merci, j'attends de tes nouvelles alors

    Merci beaucoup pour ton aide,
    Ludi

  17. #37
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    D'accord, mais du coup je comprends pas trop pourquoi on les deplace?
    1° surtout parce que je n'ai pas accès à ton réseau pour mettre le programme au point ;
    2° quand ce sera terminé, tu feras le test avec le réseau, mais je crains que cela ne détériore fortement les performances.


    Edit : On ne les déplace pas : on les copie à cet endroit.
    Dans le répertoire FichiersCSV, il n'y a que les fichiers de la journée en cours de traitement.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  18. #38
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour Ludi,

    Présupposés
    - Les fichiers que tu m’as fait parvenir étaient représentatifs d’une journée pour une machine (1,3 million d’enregistrements).
    Voici les variables qui étaient présentes




    - Tous les fichiers utiles à l’analyse sont logés dans le sous-répertoire FichiersCSV



    - Les données jugées utiles à l’analyse sont importées dans une table



    - La db ne contient aucun historique, à chaque utilisation, la table est vidangée de son contenu ancien et les nouvelles données alors présentes dans le répertoire
    « FichiersCSV » sont importées dans la table. (Les fichiers .csv sont, quant à eux, archivés et s’il s’avère qu’on doit analyser des données anciennes, il suffira de les réinstaller dans « FichiersCSV ».)

    - L’idée est que l’utilisateur donne les paramètres d’un graphique au moyen du formulaire



    dans lequel il coche des options, donne une date et laps de temps.
    Un clic sur le bouton graphique provoque l’exportation des données sélectionnées vers une feuille Excel qui génère un graphique







    Préparation de l’importation : définition d’un modèle

    Dans la barre des menus : Fichier>Données externes>Importer



    S’ouvre alors une fenêtre qui permet de désigner le fichier.




    On choisit n’importe lequel : ils ont tous la même structure :




    Vient alors cette fenêtre :




    On clique sur Avancé…



    Ce qui permet d’établir la concordance du nom des colonnes avec la table « tInput » et ne prendre que les colonnes utiles et un clic sur « Enregistrer sous… »






    Approches envisagées pour l’import


    - 1re approche : on charge tout, au cas où
    Systématiquement tous les jours, on charge dans la db, tous les fichiers du jour, soit plus ou moins 10 millions de données.
    Si une anomalie de production survient, on sélectionnera alors les données utiles.
    Pour alimenter la db, on va donc explorer tous les fichiers .csv contenus dans les sous-dossiers du répertoire « FichiersCSV » et importer chacune des lignes de ces fichiers.
    Voici une procédure pour ce faire :
    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
    Public Sub ImportCSV(Racine As String)
     'Ex.   call ImportCSV(CurrentProject.path & "\FichiersCsv\K1")
        Dim FSO As Scripting.FileSystemObject
        Dim sRep As Scripting.Folder
        Dim sSubRep As Scripting.Folder
        Dim sFichier As Scripting.File
     
        Set FSO = New Scripting.FileSystemObject
        Set sRep = FSO.GetFolder(Racine)
        'Boucle sur les fichiers
        For Each sFichier In sRep.Files
          'Importer
           DoCmd.TransferText acImportDelim, "ImportModele", "tInput", sFichier.Path, True
        Next sFichier
        'Récursivité pour les sous-répertoires
        For Each sSubRep In sRep.SubFolders
            ImportCSV sSubRep.Path
        Next sSubRep
        'Libérer
        Set sRep = Nothing
        Set FSO = Nothing
     
    End Sub
    Le formulaire « fImporterToutK1 », permet en un clic d’importer tous les enregistrements.



    Le code associé au bouton :
    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
    Option Compare Database
    Option Explicit
     
    Private Sub BtK1_Click()
      Dim tbl As TableDef
      'Purger tInput
      DoCmd.SetWarnings False
      DoCmd.RunSQL "DELETE Variable FROM tInput;"
      'Importer
      Call ImportCSV(CurrentProject.Path & "\FichiersCsv\K1")
      'Supprimer tables d'erreurs (chaque 1er enregistrement est signalé)
      For Each tbl In CurrentDb.TableDefs
          If tbl.Name Like "ImportModele_ImportErrors*" Then
              DoCmd.DeleteObject acTable, tbl.Name
          End If
      Next tbl
      'Supprimer les enregistrements Like "$RT*"
      DoCmd.RunSQL "DELETE Variable FROM tInput WHERE Variable Like ""$RT*"";"
      'Formater la donnée temps
      DoCmd.RunSQL "UPDATE tInput SET TempsFormate = Replace([temps],""."",""/"");"
      DoCmd.SetWarnings True
    End Sub
    Le processus dure 1,5 minute pour K1, on ne sera pas loin du quart d’heure pour les huit machines !


    - 2e approche : on attend d’en avoir besoin pour charger ce qu’il faut
    Si une anomalie de production survient et que l’on souhaite un graphique, l’utilisateur en définit les paramètres, par exemple ceci :




    Le clic sur le bouton Graphique déclenche alors le chargement sélectif de la db avant de préparer les données à exporter vers Excel.
    Par exemple pour charger les données que tu as transmises pour Tilting B3, cela prend une dizaine de secondes pour 232 000 enregistrements
    Voici la procédure qui sélectionne les fichiers ad hoc :
    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
    Public Sub ImportSelectCSV(Racine As String, TypeNom As String)
     'Ex.      call ImportSelectCSV(currentproject.Path & "\FichiersCsv\K1","Burner A")
        Dim FSO As Scripting.FileSystemObject
        Dim sRep As Scripting.Folder
        Dim sSubRep As Scripting.Folder
        Dim sFichier As Scripting.File
     
        Set FSO = New Scripting.FileSystemObject
        Set sRep = FSO.GetFolder(Racine)
        'Boucle sur les fichiers
        For Each sFichier In sRep.Files
          'Importer
          If sFichier.Name Like TypeNom & "*" Then
              DoCmd.TransferText acImportDelim, "ImportModele", "tInput", sFichier.Path, True
          End If
        Next sFichier
        'Récursivité pour les sous-répertoires
        For Each sSubRep In sRep.SubFolders
            ImportSelectCSV sSubRep.Path, TypeNom
        Next sSubRep
        'Libérer
        Set sRep = Nothing
        Set FSO = Nothing
     
    End Sub
    Le code associé au clic du bouton « Graphique »
    (que je commenterai en détail plus tard si cette voie est retenue)

    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
    34
    Private Sub BtGraphique_Click()
      Dim ctl As Control
      Dim tbl As TableDef
      'Contrôler la présence d'un choix de machine
      If Me.CxMachine = 0 Then MsgBox "Vous devez choisir une machine !", vbCritical
      sMachine = "K" & Me.CxMachine
      'Détecter les choix opérés
      'N.B. le type de nom de fichier est logé dans la propriété « Remarque » de la case à cocher
      For Each ctl In Me.Controls
         If ctl.Name Like "Cad*" Then
             If ctl > 0 Then sTypeFichier = Me(Right(ctl.Name, Len(ctl.Name) - 3) & ctl).Tag
         End If
      Next ctl
      'Purger tInput
      DoCmd.SetWarnings False
      DoCmd.RunSQL "DELETE Variable FROM tInput;"
      'Importer
      Call ImportSelectCSV(CurrentProject.Path & "\FichiersCsv\" & sMachine, sTypeFichier)
      'Supprimer tables d'erreurs (chaque 1er enregistrement est signalé)
      For Each tbl In CurrentDb.TableDefs
          If tbl.Name Like "ImportModele_ImportErrors*" Then
              DoCmd.DeleteObject acTable, tbl.Name
          End If
      Next tbl
      'Supprimer les enregistrements Like "$RT*"
      DoCmd.RunSQL "DELETE Variable FROM tInput WHERE Variable Like ""$RT*"";"
      'Formater la donnée temps
      DoCmd.RunSQL "UPDATE tInput SET TempsFormate = Replace([temps],""."",""/"");"
      DoCmd.SetWarnings True
      'Suite reste à faire (données pour le graphique)
      'provisoirement, on affiche la table
      DoCmd.OpenTable "tInput"
     
    End Sub
    -------------
    N.B.

    - Pour les choix opérés par l’utilisateur, j’ai supposé qu’ils étaient mutuellement exclusifs.
    Par exemple une seule case cochée sur chaque ligne, et le choix de la ligne « Tilting » exclut un choix dans « Position », « Thermocouple » et « Four ».

    - Pour « Thermocouple », les fichiers Outside_Burner* contiennent en vrac TC1 à TC8.

    - Dans l’échantillon que tu m’as livré, il y a des fichiers qui ne sont pas utilisés comme paramètres d’un graphique. Ça ne gêne pas, mais ça prend de la place.
    Tu peux télécharger ici : http://claudeleloup.developpez.com/&...iJeuDeTest.zip un jeu de test réduit (140 000 données dans les FichiersCSV), si tu veux tester avec des données réelles, remplace le contenu des répertoires « K* » par des données réelles.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  19. #39
    Membre à l'essai
    Femme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2015
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2015
    Messages : 96
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Merci pour ta reponse, et desole je viens juste de la voir...

    La db ne contient aucun historique, à chaque utilisation, la table est vidangée de son contenu ancien et les nouvelles données alors présentes dans le répertoire
    « FichiersCSV » sont importées dans la table. (Les fichiers .csv sont, quant à eux, archivés et s’il s’avère qu’on doit analyser des données anciennes, il suffira de les réinstaller dans « FichiersCSV ».)
    Ne peut-on pas prevoir une sauvegarde avant chaque vidange ou plus de donnees dans la table? Car il est rare que l'on est besoin des donnees du jour.

    Préparation de l’importation : définition d’un modèle
    Cela sera fait uniquement par moi? au debut? ou l'operation devra etre repetee?

    Pour les deux approches, je ne sais pas,je n'ai pas assez de recul. Moi je pensais faire une base par mois ou par semaine si trop de donnees. et l'operateur n'avait qu'a rentrer ces dates pour sortir les bonnes donnees. Car la je comprend pas. S'il veut donnees du 20/01/15 par exemple et qu'on est aujourd'hui comment cela se passe? les donnees sont rangees par date puis apres comme tu le veux, fichiersCSV/K1... A savoir que la date ici est la date de relevé et non la meme que celle se trouvant dans le fichier. en effet, si on est lundi, je releve les donnees donc j'ecris date du jour pour ranger mais dans le fichier, la date est celle de samedi, de dimanche et de lundi.
    Il est rare d'avoir besoin de la date du jour car les anomalies sont souvent detectees apres.

    Pour les choix opérés par l’utilisateur, j’ai supposé qu’ils étaient mutuellement exclusifs.
    Par exemple une seule case cochée sur chaque ligne, et le choix de la ligne « Tilting » exclut un choix dans « Position », « Thermocouple » et « Four ».
    Non au contraire, ca se croise. Par exemple, je veux tous les thermocouple de la position A ou thermocouple 1 et 2 de la position E ou encore thermocouple + four....

    - Pour « Thermocouple », les fichiers Outside_Burner* contiennent en vrac TC1 à TC8.
    Les outside_burners sont une categorie a part comme les fours ou les Thermocouples au final. On doit avoir possibilite de cocher aussi pour savoir si ces donnees nous interessent ou pas

    Dans l’échantillon que tu m’as livré, il y a des fichiers qui ne sont pas utilisés comme paramètres d’un graphique. Ça ne gêne pas, mais ça prend de la place.
    Je sais mais je suis forcee de les laisser pour la maintenance

    Je vais regarder plus en profondeur ton code, merci
    Ludi

  20. #40
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,


    Ne peut-on pas prevoir une sauvegarde avant chaque vidange ou plus de donnees dans la table? Car il est rare que l'on est besoin des donnees du jour.
    S'il veut donnees du 20/01/15 par exemple et qu'on est aujourd'hui comment cela se passe?
    Le principe est le suivant :
    - une anomalie survient et on veut un graphique ;
    - on copie dans « FichiersCSV » tous les fichiers .cvs nécessaires, en l’occurrence ceux du 20/01/15.

    Il n’y a pas d’historique dans la DB et une sauvegarde est parfaitement inutile.
    Si une analyse sur une date ancienne s’avère nécessaire, il suffit de copier les fichiers .csv concernés dans le répertoire.
    -----------
    Préparation de l’importation : définition d’un modèle
    Ça se fait une fois pour toutes… et c’est fait, et je t’ai expliqué comment pour compléter ta formation Access.

    Pour les deux approches, je ne sais pas,je n'ai pas assez de recul.
    C’est la seconde méthode qui est, pour moi, sans aucun doute la plus raisonnable.

    ---------
    Je vais regarder plus en profondeur ton code
    Ce n’est pas cela qui est important pour l’instant : essaie d’utiliser avec des fichiers réels et regarde le contenu de la table tImput après chaque essai.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 8 PremièrePremière 123456 ... DernièreDernière

Discussions similaires

  1. [AC-2000] Reparer une base Access a partir d'un fichier MDE
    Par superfly75 dans le forum IHM
    Réponses: 8
    Dernier message: 05/07/2011, 14h48
  2. remplir une base access avec un fichier .txt en VB.net
    Par altheorijinal dans le forum Windows Forms
    Réponses: 0
    Dernier message: 16/03/2009, 12h41
  3. Réponses: 2
    Dernier message: 25/06/2006, 20h06
  4. Mise à jour de la base Access a partir des fichiers Ascii
    Par mehdichess74 dans le forum Access
    Réponses: 3
    Dernier message: 21/06/2006, 18h00
  5. Réponses: 3
    Dernier message: 29/03/2006, 14h23

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