A voir également:
- [Requete SQL] requete sql entr des dates/heur
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Logiciel sql - Télécharger - Bases de données
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
- Sql server recovery - Télécharger - Gestion de données
- Sql replace plusieurs valeurs - Forum Programmation
3 réponses
blux
Messages postés
26546
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 décembre 2024
3 319
6 déc. 2006 à 11:18
6 déc. 2006 à 11:18
Salut,
il faut mettre des parenthèses et enlever le between, ça doit donner un truc comme ça :
il faut mettre des parenthèses et enlever le between, ça doit donner un truc comme ça :
WHERE ((DATEAPPEL > DATEDEBUT AND HEUREAPPEL > HEURE DEBUT) AND (DATEAPPEL < DATEFIN AND HEUREAPPEL > HEUREFIN))
blux
Messages postés
26546
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 décembre 2024
3 319
6 déc. 2006 à 12:35
6 déc. 2006 à 12:35
Ca ne marche pas : tu as les même résultats qu'avant ou pas les résultats attendus ?
Tes champs DATEAPPEL et HEUREAPPEL sont déclarés comment ?
Ont-ils le même format que DATEDEBUT HEUREDEBUT DATEFIN HEUREFIN ?
Tes champs DATEAPPEL et HEUREAPPEL sont déclarés comment ?
Ont-ils le même format que DATEDEBUT HEUREDEBUT DATEFIN HEUREFIN ?
J'ai les mêmes resultats qu'avant.
Mes champs DATEAPPEL et HEUREAPPEL (dans ma table TOUT) sont de type date et je les redeclare une deuxieme fois au cas ou.
Private Sub AJOUT_Click()
Dim DATEDEBUT As Date
Dim DATEFIN As Date
Dim HEUREDEBUT As Date
Dim HEUREFIN As Date
Set db = CurrentDb()
DATEDEBUT = Me.DATEDEBUT.Value
DATEFIN = Me.DATEFIN.Value
HEUREDEBUT = Left(Me.HEUREDEBUT.Value, 5)
HEUREFIN = Left(Me.HEUREFIN.Value, 5)
DoCmd.SetWarnings False
'REQUETE tri DATE ET CA+CNA
req1 = "SELECT TOUT.MARCHE, TOUT.CODEMARCHE, TOUT.TELEACT, TOUT.DATEAPPEL, TOUT.RESULTAT "
req1 = req1 + " INTO [STATS CC]FROM TOUT "
req1 = req1 + " WHERE ((((TOUT.DATEAPPEL)>=DATEDEBUT AND (TOUT.HEUREAPPEL)>=HEUREDEBUT )"
req1 = req1 + " AND ((TOUT.DATEAPPEL)<=DATEFIN AND(TOUT.HEUREAPPEL)<= HEUREFIN))"
req1 = req1 + " AND RESULTAT<>'RAPPEL' AND RESULTAT<>'NRP' AND RESULTAT<>'STOPC' "
req1 = req1 + " AND RESULTAT<>'STOPCA'AND RESULTAT<>'');"
Mes champs DATEAPPEL et HEUREAPPEL (dans ma table TOUT) sont de type date et je les redeclare une deuxieme fois au cas ou.
Private Sub AJOUT_Click()
Dim DATEDEBUT As Date
Dim DATEFIN As Date
Dim HEUREDEBUT As Date
Dim HEUREFIN As Date
Set db = CurrentDb()
DATEDEBUT = Me.DATEDEBUT.Value
DATEFIN = Me.DATEFIN.Value
HEUREDEBUT = Left(Me.HEUREDEBUT.Value, 5)
HEUREFIN = Left(Me.HEUREFIN.Value, 5)
DoCmd.SetWarnings False
'REQUETE tri DATE ET CA+CNA
req1 = "SELECT TOUT.MARCHE, TOUT.CODEMARCHE, TOUT.TELEACT, TOUT.DATEAPPEL, TOUT.RESULTAT "
req1 = req1 + " INTO [STATS CC]FROM TOUT "
req1 = req1 + " WHERE ((((TOUT.DATEAPPEL)>=DATEDEBUT AND (TOUT.HEUREAPPEL)>=HEUREDEBUT )"
req1 = req1 + " AND ((TOUT.DATEAPPEL)<=DATEFIN AND(TOUT.HEUREAPPEL)<= HEUREFIN))"
req1 = req1 + " AND RESULTAT<>'RAPPEL' AND RESULTAT<>'NRP' AND RESULTAT<>'STOPC' "
req1 = req1 + " AND RESULTAT<>'STOPCA'AND RESULTAT<>'');"
blux
Messages postés
26546
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 décembre 2024
3 319
6 déc. 2006 à 14:33
6 déc. 2006 à 14:33
Je ne sais pas ce que peut donner un champ date auquel tu gardes les 5 premiers caractères...
Comment fais-tu pour les déclarer une deuxième fois en date ?
Peut-être que tu devrais changer le format d'affichage des champs HEURE dans la description de la table pour que les tests soient faits sur des données "identiques"...
Comment fais-tu pour les déclarer une deuxième fois en date ?
Peut-être que tu devrais changer le format d'affichage des champs HEURE dans la description de la table pour que les tests soient faits sur des données "identiques"...
On saisi dans un formulaire les heures de debut et fin mais quand je recupere ma valeur ca me donne 09:00:00 en fait ca compte les secondes, c'est pour ca que je prend que les 5 premiers chiffres.
Et dans ma table le champ heureappel est defini en date (car sur access on peur choisir que le format date/heure) et il est note ainsi 09:00.
quand j'execute ma requete je peux donc avoir les mêmes données a comparer 09:00 >=09:00 et non 09:00 >= 09:00:00
La requete fonctionne mais ca me prend par ex que les fiches du 04/09 de 09:00 à 12:00 et du 05/09 de 09:00 a 12:00 au lieu du 04/09 09:00 au 05/09 12:00.
A l'aide svp...
extrait code
Dim HEUREDEBUT As Date
Dim HEUREFIN As Date
Set db = CurrentDb()
DATEDEBUT = Me.DATEDEBUT.Value
DATEFIN = Me.DATEFIN.Value
HEUREDEBUT = Left(Me.HEUREDEBUT.Value, 5)
HEUREFIN = Left(Me.HEUREFIN.Value, 5)
DoCmd.SetWarnings False
req1 = "SELECT TOUT.MARCHE, TOUT.TYPE_MARCHE, TOUT.CODEMARCHE, TOUT.TELEACT, TOUT.DATEAPPEL, TOUT.RESULTAT "
req1 = req1 + " INTO [STATS CC]FROM TOUT "
req1 = req1 + " WHERE ((((TOUT.DATEAPPEL)>=DATEDEBUT AND (TOUT.HEUREAPPEL)>=HEUREDEBUT )"
req1 = req1 + " AND ((TOUT.DATEAPPEL)<=DATEFIN AND(TOUT.HEUREAPPEL)<= HEUREFIN))"
req1 = req1 + " AND RESULTAT<>'RAPPEL' AND RESULTAT<>'NRP' AND RESULTAT<>'STOPC' "
req1 = req1 + " AND RESULTAT<>'STOPCA'AND RESULTAT<>'');"
Et dans ma table le champ heureappel est defini en date (car sur access on peur choisir que le format date/heure) et il est note ainsi 09:00.
quand j'execute ma requete je peux donc avoir les mêmes données a comparer 09:00 >=09:00 et non 09:00 >= 09:00:00
La requete fonctionne mais ca me prend par ex que les fiches du 04/09 de 09:00 à 12:00 et du 05/09 de 09:00 a 12:00 au lieu du 04/09 09:00 au 05/09 12:00.
A l'aide svp...
extrait code
Dim HEUREDEBUT As Date
Dim HEUREFIN As Date
Set db = CurrentDb()
DATEDEBUT = Me.DATEDEBUT.Value
DATEFIN = Me.DATEFIN.Value
HEUREDEBUT = Left(Me.HEUREDEBUT.Value, 5)
HEUREFIN = Left(Me.HEUREFIN.Value, 5)
DoCmd.SetWarnings False
req1 = "SELECT TOUT.MARCHE, TOUT.TYPE_MARCHE, TOUT.CODEMARCHE, TOUT.TELEACT, TOUT.DATEAPPEL, TOUT.RESULTAT "
req1 = req1 + " INTO [STATS CC]FROM TOUT "
req1 = req1 + " WHERE ((((TOUT.DATEAPPEL)>=DATEDEBUT AND (TOUT.HEUREAPPEL)>=HEUREDEBUT )"
req1 = req1 + " AND ((TOUT.DATEAPPEL)<=DATEFIN AND(TOUT.HEUREAPPEL)<= HEUREFIN))"
req1 = req1 + " AND RESULTAT<>'RAPPEL' AND RESULTAT<>'NRP' AND RESULTAT<>'STOPC' "
req1 = req1 + " AND RESULTAT<>'STOPCA'AND RESULTAT<>'');"
blux
Messages postés
26546
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 décembre 2024
3 319
6 déc. 2006 à 15:13
6 déc. 2006 à 15:13
T'as essayé de mettre des #, c'est le séparateur officiel des champs de type date/heure ?
zouzou
>
blux
Messages postés
26546
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 décembre 2024
6 déc. 2006 à 15:16
6 déc. 2006 à 15:16
non ca ne marche pas avec les #
je pense pas que ce soit une histoire de format car je reussi quand meme a avoir des enregistrements.
Je pense que c'est la tournure de ma requete et je n'arrive pas a trouver comment la modifier
je pense pas que ce soit une histoire de format car je reussi quand meme a avoir des enregistrements.
Je pense que c'est la tournure de ma requete et je n'arrive pas a trouver comment la modifier
blux
Messages postés
26546
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 décembre 2024
3 319
>
blux
Messages postés
26546
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 décembre 2024
7 déc. 2006 à 11:21
7 déc. 2006 à 11:21
Pourtant elle ne me choque pas, je sèche...
ZOUZOU
>
blux
Messages postés
26546
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
24 décembre 2024
7 déc. 2006 à 11:33
7 déc. 2006 à 11:33
Moi aussi je seche.
je me demande pas si c'est une histoire de OR
WHERE ((((TOUT.DATEAPPEL)>=DATEDEBUT AND (TOUT.HEUREAPPEL)>=HEUREDEBUT ) OR ((TOUT.DATEAPPEL)<=DATEFIN AND(TOUT.HEUREAPPEL)<= HEUREFIN))
Mais ca marche pas aussi
ce qu'il faudrait c'est
WHERE ((((TOUT.DATEAPPEL)>=DATEDEBUT AND (TOUT.HEUREAPPEL)>=HEUREDEBUT ) BETWEEN ((TOUT.DATEAPPEL)<=DATEFIN AND(TOUT.HEUREAPPEL)<= HEUREFIN))
le probleme c'est que le between est utilisable entre deux champs
je me demande pas si c'est une histoire de OR
WHERE ((((TOUT.DATEAPPEL)>=DATEDEBUT AND (TOUT.HEUREAPPEL)>=HEUREDEBUT ) OR ((TOUT.DATEAPPEL)<=DATEFIN AND(TOUT.HEUREAPPEL)<= HEUREFIN))
Mais ca marche pas aussi
ce qu'il faudrait c'est
WHERE ((((TOUT.DATEAPPEL)>=DATEDEBUT AND (TOUT.HEUREAPPEL)>=HEUREDEBUT ) BETWEEN ((TOUT.DATEAPPEL)<=DATEFIN AND(TOUT.HEUREAPPEL)<= HEUREFIN))
le probleme c'est que le between est utilisable entre deux champs
6 déc. 2006 à 12:04
AS-TU UNE AUTRE SOLUTION ????
req1 = "SELECT TOUT.MARCHE, TOUT.CODEMARCHE, TOUT.TELEACT, TOUT.DATEAPPEL, TOUT.RESULTAT "
req1 = req1 + " INTO [STATS CC]FROM TOUT "
req1 = req1 + " WHERE ((((TOUT.DATEAPPEL)>=DATEDEBUT AND (TOUT.HEUREAPPEL)>=HEUREDEBUT )"
req1 = req1 + " AND ((TOUT.DATEAPPEL)<=DATEFIN AND(TOUT.HEUREAPPEL)<= HEUREFIN))"
req1 = req1 + " AND RESULTAT<>'RAPPEL' AND RESULTAT<>'NRP' AND RESULTAT<>'STOPC' "
req1 = req1 + " AND RESULTAT<>'STOPCA'AND RESULTAT<>'');"