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

Requêtes et SQL. Discussion :

Creer une requete access sous Query


Sujet :

Requêtes et SQL.

  1. #1
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut Creer une requete access sous Query
    Bonjour,
    Je ne sais pas si je suis dans le bon forum mais je me lance quand même ..

    J'ai crée une requete union parametrée avec le champ dbo_vwAlarmHistory.OnTime (date début et date de fin).
    On me demande de transférer cette requete sous query et là je suis bloqué.
    En effet, lorsque la requete sql contient un seul critère de date, je sais comment transferer ma requete sous query.
    Mais dans ce cas précis, ma requete contient une date qui se repete plusieurs fois et là je ne sais pas comment m'y prendre.

    Ci dessous ma requete SQL :
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    SELECT dbo_vwAlarmHistory.OnTime AS debut, dbo_vwAlarmHistory.OffTime AS fin, dbo_vwAlarmHistory.Duration AS duree, dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) LIKE 'NAT*'))  AND (dbo_vwAlarmHistory.OnTime >= debut and  dbo_vwAlarmHistory.OnTime <= fin)
     
     
     
     
    UNION
     
    SELECT dbo_vwAlarmHistory.OnTime AS debut, dbo_vwAlarmHistory.OffTime AS fin, dbo_vwAlarmHistory.Duration AS duree, dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) LIKE 'IOC*')) AND (dbo_vwAlarmHistory.OnTime >= debut and  dbo_vwAlarmHistory.OnTime <= fin)
     
    UNION
     
    SELECT dbo_vwAlarmHistory.OnTime AS debut, dbo_vwAlarmHistory.OffTime AS fin, dbo_vwAlarmHistory.Duration AS duree, dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName)= 'CMC_NOT_READY')) AND (dbo_vwAlarmHistory.OnTime >= debut and  dbo_vwAlarmHistory.OnTime <= fin)
     
    UNION
     
    SELECT dbo_vwAlarmHistory.OnTime AS debut, dbo_vwAlarmHistory.OffTime AS fin, dbo_vwAlarmHistory.Duration AS duree, dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) = 'SOR_SEN_PLATE_MIS')) AND (dbo_vwAlarmHistory.OnTime >= debut and  dbo_vwAlarmHistory.OnTime <= fin)
     
    UNION
     
    SELECT dbo_vwAlarmHistory.OnTime AS debut, dbo_vwAlarmHistory.OffTime AS fin, dbo_vwAlarmHistory.Duration AS duree, dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) = 'PP_ES_MAIN')) AND (dbo_vwAlarmHistory.OnTime >= debut and  dbo_vwAlarmHistory.OnTime <= fin)
     
    UNION
     
    SELECT dbo_vwAlarmHistory.OnTime AS debut, dbo_vwAlarmHistory.OffTime AS fin, dbo_vwAlarmHistory.Duration AS duree, dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) LIKE 'LM_COL*')) AND (dbo_vwAlarmHistory.OnTime >= debut and  dbo_vwAlarmHistory.OnTime <= fin)
     
     
    UNION
     
     
    SELECT dbo_vwAlarmHistory.OnTime AS debut, dbo_vwAlarmHistory.OffTime AS fin, dbo_vwAlarmHistory.Duration AS duree, dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) LIKE 'LM_LMS*')) AND (dbo_vwAlarmHistory.OnTime >= debut and  dbo_vwAlarmHistory.OnTime <= fin)
     
    UNION
     
     
    SELECT dbo_vwAlarmHistory.OnTime AS debut, dbo_vwAlarmHistory.OffTime AS fin, dbo_vwAlarmHistory.Duration AS duree, dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName)='MS_PEC_ERR_*')) AND ((dbo_vwAlarmHistory.OnTime)>=[debut] And (dbo_vwAlarmHistory.OnTime)<=[fin])
     
    UNION
     
    SELECT dbo_vwAlarmHistory.OnTime AS debut, dbo_vwAlarmHistory.OffTime AS fin, dbo_vwAlarmHistory.Duration AS duree, dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName)='TTS_PEC_ERR_*')) AND ((dbo_vwAlarmHistory.OnTime)>=[debut] And (dbo_vwAlarmHistory.OnTime)<=[fin])
     
     
    UNION SELECT dbo_vwAlarmHistory.OnTime AS debut, dbo_vwAlarmHistory.OffTime AS fin, dbo_vwAlarmHistory.Duration AS duree, dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) LIKE 'IOTT*')) AND (dbo_vwAlarmHistory.OnTime >= debut and  dbo_vwAlarmHistory.OnTime <= fin);
    Voilà...
    Merci pour votre aide

  2. #2
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    j'ai comméncé a travailler dessus0.
    J'ai modifié la requete. mais sous query, j'ai un message d'erreur qui s'affiche :

    Type incompatible dans l'expression du critère.

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    SELECT dbo_vwAlarmHistory.OnTime , dbo_vwAlarmHistory.OffTime , dbo_vwAlarmHistory.Duration , dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) LIKE 'NAT_ERR_*'))  AND (dbo_vwAlarmHistory.OnTime >=?)
     
    UNION
     
     
     
    SELECT dbo_vwAlarmHistory.OnTime , dbo_vwAlarmHistory.OffTime , dbo_vwAlarmHistory.Duration , dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) LIKE 'IOC_ERR_*')) AND (dbo_vwAlarmHistory.OnTime  >=?)
     
     
     
    UNION
     
    SELECT dbo_vwAlarmHistory.OnTime , dbo_vwAlarmHistory.OffTime , dbo_vwAlarmHistory.Duration , dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName)='CMC_NOT_READY')) AND (dbo_vwAlarmHistory.OnTime >=?)
     
     
     
    UNION
     
    SELECT dbo_vwAlarmHistory.OnTime , dbo_vwAlarmHistory.OffTime , dbo_vwAlarmHistory.Duration , dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName)='SOR_SEN_PLATE_MIS')) AND (dbo_vwAlarmHistory.OnTime >=?)
     
     
     
    UNION
     
    SELECT dbo_vwAlarmHistory.OnTime , dbo_vwAlarmHistory.OffTime , dbo_vwAlarmHistory.Duration , dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName)='PP_ES_MAIN')) AND (dbo_vwAlarmHistory.OnTime >=?)
     
     
     
    UNION
     
    SELECT dbo_vwAlarmHistory.OnTime , dbo_vwAlarmHistory.OffTime , dbo_vwAlarmHistory.Duration , dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) LIKE 'LM_COL*')) AND (dbo_vwAlarmHistory.OnTime >=?)
     
     
     
    UNION
     
     
    SELECT dbo_vwAlarmHistory.OnTime , dbo_vwAlarmHistory.OffTime , dbo_vwAlarmHistory.Duration , dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) LIKE 'LM_LMS*]')) AND (dbo_vwAlarmHistory.OnTime >=?)
     
     
     
    UNION
     
     
    SELECT dbo_vwAlarmHistory.OnTime , dbo_vwAlarmHistory.OffTime , dbo_vwAlarmHistory.Duration , dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) LIKE 'MS_PEC_ERR_*')) AND (dbo_vwAlarmHistory.OnTime >=?)
     
     
     
    UNION
     
     
     
    SELECT dbo_vwAlarmHistory.OnTime , dbo_vwAlarmHistory.OffTime , dbo_vwAlarmHistory.Duration , dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) LIKE 'TTS_PEC_ERR_*')) AND (dbo_vwAlarmHistory.OnTime >=?)
     
     
     
    UNION 
     
    SELECT dbo_vwAlarmHistory.OnTime , dbo_vwAlarmHistory.OffTime , dbo_vwAlarmHistory.Duration , dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) LIKE 'IOTT_ERR_*')) AND (dbo_vwAlarmHistory.OnTime >=?);

  3. #3
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Bonjour !

    Je ne sais pas si c'est cela que tu recherches... ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT dbo_vwAlarmHistory.OnTime , dbo_vwAlarmHistory.OffTime , dbo_vwAlarmHistory.Duration , dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) LIKE 'NAT_ERR_*'))  AND Not IsNull (dbo_vwAlarmHistory.OnTime)
     
    UNION SELECT dbo_vwAlarmHistory.OnTime , dbo_vwAlarmHistory.OffTime , dbo_vwAlarmHistory.Duration , dbo_vwAlarmData.TagName
    FROM dbo_vwAlarmData, dbo_vwAlarmHistory
    WHERE (((dbo_vwAlarmData.ID)=[dbo_vwAlarmHistory].[AlarmID]) AND ((dbo_vwAlarmData.TagName) LIKE 'IOC_ERR_*')) AND Not IsNull (dbo_vwAlarmHistory.OnTime);
    Merci pour ton retour :-)
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  4. #4
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    salut bernard,
    désolé, ce n'est pas ce que je recherche...
    je ne comprend pas pourquoi tu as mis ce critère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND Not IsNull (dbo_vwAlarmHistory.OnTime)

  5. #5
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Hello !

    J'ai mis ce critère car ">=?" veut dire plus grand ou égal à un caractère donc... pas null.

    Que veut dire pour toi ">=?" ?


    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  6. #6
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Salut bernard,
    Pour moi >=?" , correspondait à une date.
    Mais oublions cela..
    J'ai crée ma requete QUERY avec une date de début et date de fin associé a tous mes critères
    Ci dessous la requete sql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT dbo_vwAlarmData.TagName, dbo_vwAlarmHistory.OnTime AS 'debut ', dbo_vwAlarmHistory.OffTime AS 'fin ', dbo_vwAlarmHistory.Duration/60000 AS 'Durée_Matin_(min)'
    FROM dbo_vwAlarmData dbo_vwAlarmData, dbo_vwAlarmHistory dbo_vwAlarmHistory
    WHERE dbo_vwAlarmData.ID = dbo_vwAlarmHistory.AlarmID AND ((dbo_vwAlarmHistory.OnTime>=? And dbo_vwAlarmHistory.OnTime<?) AND (dbo_vwAlarmData.TagName Like 'NAT%') OR (dbo_vwAlarmHistory.OnTime>=? And dbo_vwAlarmHistory.OnTime<?) AND (dbo_vwAlarmData.TagName Like 'IOC_ERR_%') OR (dbo_vwAlarmHistory.OnTime>=? And dbo_vwAlarmHistory.OnTime<?) AND (dbo_vwAlarmData.TagName='CMC_NOT_READY') OR (dbo_vwAlarmHistory.OnTime>=? And dbo_vwAlarmHistory.OnTime<?) AND (dbo_vwAlarmData.TagName='SOR_SEN_PLATE_MIS') OR (dbo_vwAlarmHistory.OnTime>=? And dbo_vwAlarmHistory.OnTime<?) AND (dbo_vwAlarmData.TagName='PP_ES_MAIN') OR (dbo_vwAlarmHistory.OnTime>=? And dbo_vwAlarmHistory.OnTime<?) AND (dbo_vwAlarmData.TagName Like 'LM_COL%') OR (dbo_vwAlarmHistory.OnTime>=? And dbo_vwAlarmHistory.OnTime<?) AND (dbo_vwAlarmData.TagName Like 'LM_LMS%') OR (dbo_vwAlarmHistory.OnTime>=? And dbo_vwAlarmHistory.OnTime<?) AND (dbo_vwAlarmData.TagName Like 'MS_PEC_ERR_%'))
    J'ai crée un bouton de commande qui normalement réactualise la requete. Mais cela ne fonctionne pas.
    La réactualisation doit se faire manuellement.
    Je pense que le problème vient du fait que la date de début et la date de fin proviennent d'une autre requete query.
    date début =donnees_rapport!$S$2 où la cellule S2 correspond au resultat d'une autre requete query qui donne une date début
    date fin= donnees_rapport!$T$2 où la cellule T2 correspond au resultat d'une autre requete query qui donne une date fin

  7. #7
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Hello !

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    ' Présentée ainsi, ta requête devient plus lisible...
    SQL = "SELECT dbo_vwAlarmData.TagName, dbo_vwAlarmHistory.OnTime AS 'debut ', dbo_vwAlarmHistory.OffTime AS 'fin ', " & _
          "dbo_vwAlarmHistory.Duration/60000 AS 'Durée_Matin_(min)' " & _
          "FROM dbo_vwAlarmData dbo_vwAlarmData, dbo_vwAlarmHistory dbo_vwAlarmHistory " & _
          "WHERE dbo_vwAlarmData.ID = dbo_vwAlarmHistory.AlarmID " & _
          "AND ((dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName Like 'NAT%') OR (dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName Like 'IOC_ERR_%') OR (dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName='CMC_NOT_READY') OR (dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName='SOR_SEN_PLATE_MIS') OR (dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName='PP_ES_MAIN') OR (dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName Like 'LM_COL%') OR (dbo_vwAlarmHistory.OnTime>=? And dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName Like 'LM_LMS%') OR (dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName Like 'MS_PEC_ERR_%'))"
    
    
    ' Remplacement/suppression des apostrophes
    SQL = "SELECT dbo_vwAlarmData.TagName, dbo_vwAlarmHistory.OnTime AS debut, dbo_vwAlarmHistory.OffTime AS fin, " & _
          "dbo_vwAlarmHistory.Duration/60000 AS [Durée_Matin_(min)] " & _
          "FROM dbo_vwAlarmData dbo_vwAlarmData, dbo_vwAlarmHistory dbo_vwAlarmHistory " & _
          "WHERE dbo_vwAlarmData.ID = dbo_vwAlarmHistory.AlarmID " & _
          "AND ((dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName Like '" & "NAT%" & "') OR (dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName Like '" & "IOC_ERR_%" & "') OR (dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName='" & "CMC_NOT_READY" & "') OR (dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName='" & "SOR_SEN_PLATE_MIS" & "') OR (dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName='" & "PP_ES_MAIN" & "') OR (dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName Like '" & "LM_COL%" & "') OR (dbo_vwAlarmHistory.OnTime>=? And dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName Like '" & "LM_LMS%" & "') OR (dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName Like '" & "MS_PEC_ERR_%" & "'))"
    
    
    ' Ma proposition en fonction de ce que j'ai compris...
    SQL = "SELECT dbo_vwAlarmData.TagName, dbo_vwAlarmHistory.OnTime AS debut, dbo_vwAlarmHistory.OffTime AS fin, " & _
          "dbo_vwAlarmHistory.Duration/60000 AS [Durée_Matin_(min)] " & _
          "FROM dbo_vwAlarmData dbo_vwAlarmData, dbo_vwAlarmHistory dbo_vwAlarmHistory " & _
          "WHERE dbo_vwAlarmData.ID = dbo_vwAlarmHistory.AlarmID " & _
          "AND ((dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) " & _
          "AND (dbo_vwAlarmData.TagName Like '" & "NAT%" & "') OR Not(dbo_vwAlarmHistory.OnTime) Is Null " & _
          "AND (dbo_vwAlarmData.TagName Like '" & "IOC_ERR_%" & "') OR Not(dbo_vwAlarmHistory.OnTime) Is Null " & _
          "AND (dbo_vwAlarmData.TagName='" & "CMC_NOT_READY" & "') OR Not(dbo_vwAlarmHistory.OnTime) Is Null " & _
          "AND (dbo_vwAlarmData.TagName='" & "SOR_SEN_PLATE_MIS" & "') OR Not(dbo_vwAlarmHistory.OnTime) Is Null " & _
          "AND (dbo_vwAlarmData.TagName='" & "PP_ES_MAIN" & "') OR Not(dbo_vwAlarmHistory.OnTime) Is Null " & _
          "AND (dbo_vwAlarmData.TagName Like '" & "LM_COL%" & "') OR Not(dbo_vwAlarmHistory.OnTime) Is Null " & _
          "AND (dbo_vwAlarmData.TagName Like '" & "LM_LMS%" & "') OR Not(dbo_vwAlarmHistory.OnTime) Is Null " & _
          "AND (dbo_vwAlarmData.TagName Like '" & "MS_PEC_ERR_%" & "'))"
    Hypothèse de compréhension:
    Si dbo_vwAlarmHistory.OnTime doit être: "> =" et "<", cela veut dire que dbo_vwAlarmHistory.OnTime peut prendre n'importe quelle valeur...
    Donc, à mon avis, ces instructions sont inutiles sinon que de tester si la valeur de "dbo_vwAlarmHistory.OnTime" n'est pas nulle, cf. "Ma proposition" dans le code ci-dessus.

    Voilà ce que je peux te dire en fonction de ce que j'ai compris. Si je suis "à côté de la plaque", merci de fournir des exemples avec des données.

    Cordialement.


    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  8. #8
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    salut bernard,

    J'ai repris ta requete sql et je l'ai insere dans une requte access.
    Lorsque je la lance , je n'aie pas de données alors que je devrais en avoir..
    Oublions un moment ce qui a été dis précédemment..
    Ou peut bien situer le problème lorsque une requete query ne se réactualise pas automatiquement mais se réactualise manuellement.
    ci dessous le code qui reactualise automatiquement toutes mes requetes query sauf une ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub MAJ_All_Querys()
     
     
        Dim ws As Worksheet
        Dim lo As ListObject
     
        For Each ws In ThisWorkbook.Worksheets
            For Each lo In ws.ListObjects
                lo.QueryTable.Refresh BackgroundQuery:=False
     
     
            Next
        Next
    j'ai rajoué en dessous de ce code, un petit code qui provient d'une réactualisation manuelle mais cela ne change rien, ma requete ne se réactualise toujours pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Sheets("donnees_rapport")
            .Range("BJ2").ListObject.QueryTable.Refresh BackgroundQuery:=False
        End With

  9. #9
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Alors, deux questions:
    1. Ne vaudrait-il pas mieux lancer ces requêtes depuis Excel (et dans ce cas, il faudrait te rediriger vers le Forum Excel pour avoir plus de réponses) ou...
    2. Peux-tu mettre l'entier de ton code Access dans ton prochain post.


    Cordialement.
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  10. #10
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    bernard , je lances mes requetes depuis une une feuille Excel
    voici ton code sql en sql access
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT dbo_vwAlarmData.TagName, dbo_vwAlarmHistory.OnTime AS debut, dbo_vwAlarmHistory.OffTime AS fin, dbo_vwAlarmHistory.Duration/60000 AS [Durée_Matin_(min)] 
    FROM dbo_vwAlarmData dbo_vwAlarmData, dbo_vwAlarmHistory dbo_vwAlarmHistory 
    WHERE dbo_vwAlarmData.ID = dbo_vwAlarmHistory.AlarmID AND ((dbo_vwAlarmHistory.OnTime>=? AND dbo_vwAlarmHistory.OnTime<?) AND (dbo_vwAlarmData.TagName Like '" & "NAT%" & "') OR Not(dbo_vwAlarmHistory.OnTime) Is Null
    AND (dbo_vwAlarmData.TagName Like '" & "IOC_ERR_%" & "') OR Not(dbo_vwAlarmHistory.OnTime) Is Null 
    AND (dbo_vwAlarmData.TagName='" & "CMC_NOT_READY" & "') OR Not(dbo_vwAlarmHistory.OnTime) Is Null 
    AND (dbo_vwAlarmData.TagName='" & "SOR_SEN_PLATE_MIS" & "') OR Not(dbo_vwAlarmHistory.OnTime) Is Null 
    AND (dbo_vwAlarmData.TagName='" & "PP_ES_MAIN" & "') OR Not(dbo_vwAlarmHistory.OnTime) Is Null 
    AND (dbo_vwAlarmData.TagName Like '" & "LM_COL%" & "') OR Not(dbo_vwAlarmHistory.OnTime) Is Null 
    AND (dbo_vwAlarmData.TagName Like '" & "LM_LMS%" & "') OR Not(dbo_vwAlarmHistory.OnTime) Is Null 
    AND (dbo_vwAlarmData.TagName Like '" & "MS_PEC_ERR_%" & "')) ;

  11. #11
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    C'est de ce code-là dont je te parlais.
    • Où se trouve-t'il ?
    • Peux-tu l'envoyer en entier ?


    Citation Envoyé par facteur Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub MAJ_All_Querys()
        Dim ws As Worksheet
        Dim lo As ListObject
     
        For Each ws In ThisWorkbook.Worksheets
            For Each lo In ws.ListObjects
                lo.QueryTable.Refresh BackgroundQuery:=False
     
     
            Next
        Next
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  12. #12
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    salut bernard,

    Shame on me...
    le problème de la non réactualisation d'une de mes requete query provenait d'un bout de code qui empechait le recalcule automatique.
    Le soucis est donc résolu..
    Mais puisse ce que je te tiens lol, je souhaiterais crée une requete query qui se lancerait à partir d'un bouton de commande.
    Comment tu t'y prendrais ?

  13. #13
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Hello !

    Sur l'objet click de ton bouton: [Procédure événementielle]
    Et dans le code, tu écris simplement CurrentDb.Execute (TaRequête)

    Et voilà :-)
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

Discussions similaires

  1. Réponses: 7
    Dernier message: 03/10/2007, 19h06
  2. Réponses: 3
    Dernier message: 09/08/2007, 11h53
  3. [Access] Comment créer une requete avec la date
    Par Daniela dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/09/2006, 11h06
  4. [sql]Probleme de count dans une requete sql (sous access)
    Par castelligreg dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 14/04/2006, 16h06
  5. Problème avec une requete SQL sous access
    Par Luther13 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 14/12/2005, 10h39

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