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 :

Ajout avec filtre date et heure [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre averti
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Mai 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Electrotechnicien
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 47
    Par défaut Ajout avec filtre date et heure
    Bonjour à tous
    je me tourne vers vous pour m'aider à résoudre mon problème qui est le suivant:

    1- je récupère des fichiers CSV d'alarmes automate dans un répertoire
    2- j'importe les CSV un par un dans une table temporaire [tba_TmpAl]
    3- une requête sélection [qry_TmpAl] m'enlève les lignes inutiles (lignes vides, titres, etc), donc il me reste les champs qui m’intéressent:
    [F1] = date
    [F2] = heure déclenchement alarme
    [F3] = texte d'alarme
    [F4] = heure alarme acquittée
    [F5] = heure alarme retombée
    [F6] = variable d'alarme (nom dans l'automate)
    Expr1: Format([tba_TmpAl]![F1] & " " & [tba_TmpAl]![F2];"mm/jj/aaaa\ hh:nn:ss")

    donc le but de la manip est d'importer le résultat de la requête sélection dans la table définitive [tba_Alarme] qui comprend les champs suivant:
    [numAlarme]
    [DateAlarme]
    [HeureAlarme]
    [MessageAlarme]
    [HeureAcqAlarme]
    [HeureRetombeAlarme]
    [NomVariableAlarme]

    le hic c'est qu'on retrouve des alarmes identiques avec les même dates et heures dans différents fichiers CSV

    mon idée est de filtrer sur les dates et heures en faisant un Format ("mm/dd/yyyy hh:nn:ss") mais je ne sais pas comment ajouter les alarmes sans faire de doublons

    j'ai commencé un bout de code, mais sur la condition "Where" je sèche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            SQL = "INSERT INTO tba_Alarme ( DateAl, HeureActifAl, MessageAl, HeureAcqAl, HeureRetombeAl, NomVariableAl ) " _
            & "SELECT qry_TmpAl.F1, qry_TmpAl.F2, qry_TmpAl.F3, qry_TmpAl.F4, qry_TmpAl.F5, qry_TmpAl.F6 " _
            & "FROM qry_TmpAl " _
            & "WHERE (((qry_TmpAl.Expr1) ??????????? ));"
     
            DoCmd.SetWarnings False
            DoCmd.RunSQL SQL
            DoCmd.SetWarnings True
    merci d'avance pour votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 028
    Par défaut
    bonjour
    Le hic c'est qu'on retrouve des alarmes identiques avec les même dates et heures dans différents fichiers CSV
    Alors un simple DISTINCT après le SELECT t'enlèveras les doublons
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SQL = "INSERT INTO tba_Alarme ( DateAl, HeureActifAl, MessageAl, HeureAcqAl, HeureRetombeAl, NomVariableAl ) " _
            & "SELECT DISTINCT qry_TmpAl.F1, qry_TmpAl.F2, qry_TmpAl.F3, qry_TmpAl.F4, qry_TmpAl.F5, qry_TmpAl.F6 " _
            & "FROM qry_TmpAl "
    NB : C'est aussi possible avec un GROUP BY

    Bonne suite

  3. #3
    Membre averti
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Mai 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Electrotechnicien
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2010
    Messages : 47
    Par défaut
    Merci pour ta réponse rapide, mais cela m'a quand même ajouté des doublons

    par contre j'ai trouvé une soluce un peu usine à gaz qui consiste à créer une requête de non-correspondance sur les champs date et heure puis d'ajouter le résultat à ma table, et là terminer les doublons

    encore merci et @+

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 08/07/2014, 14h02
  2. [AC-2010] Requête avec critère date et heure
    Par Ovr19 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 08/07/2011, 00h09
  3. Problème avec les dates : une heure de moins
    Par jaymz dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 17/03/2009, 09h29
  4. Fonction de domaine - Calcul de cumul avec filtre "date et heure".
    Par Fabrice7627 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 25/08/2007, 05h16
  5. [Dates] Problème avec des dates et Heures
    Par snakejl dans le forum Langage
    Réponses: 9
    Dernier message: 16/05/2006, 18h04

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