Info entre 2 dates SQL VB6

Fermé
Betty - 13 avril 2010 à 13:02
 Erakmur - 15 sept. 2014 à 13:33
Bonjour,

Voilà, je suis entrain de crée une GMAO, et je suis en phase final, mais je reste bloquer sur un probléme de requete SQL sur mon code VB6.

Le but: lors de la génération du document excel ,je dois préciser un interval de date (zone texte : date1 et date2) pour avoir un rapport mensuel par exemple . le but c'est d'avoir les données où date inscription entre date1 et date2, mais j'ai toujours une erreur de "type incompatible"

NB: les date sous access sont declarées sous format DATE

Voilà ma requete :

sql2 = " SELECT OPERATION.OPER_CODE, OPERATION.OPER_LIBELLE, OPERATION.OPER_PERMIS_TRAVAIL, OPERATION.OPER_ORDRE_TRVAIL, OPERATION.TOPE_CODE, TYPE_OPERATION.TOPE_LIBELLE, OPERATION.AVAN_CODE, ETAT_AVANCEMENT.AVAN_LIBELLE, LOCALISATION_OPER.TRAV_CODE, EQUIPE_TRAVAUX.TRAV_LIBELLE, OPERATION.OPER_SUPER, OPERATION.DEM_CODE, LOCALISATION_OPER.DOM_CODE, EQUIPEMENTS.FAME_CODE, FAMILLE_EQUIPEMENT.FAME_LIBELLE, LOCALISATION_OPER.EQIP_CODE, EQUIPEMENTS.EQIP_LIBEL_COURT, OPERATION.OPER_T_DEF, LOCALISATION_OPER.SITE_CODE, SITE.SITE_LIBELLE, LOCALISATION_OPER.BAT_CODE, BATIMENT.BAT_DESI, BATIMENT.TBAT_CODE, LOCALISATION_OPER.ZONE_CODE, ZONES.ZONE_LIBELLE, ZONES.TZON_CODE, LOCALISATION_OPER.LOCA_CODE, LOCALE.LOCA_LIBELLE, LOCALE.TLOC_CODE, LOCALISATION_OPER.AFFA_CODE, AFFAIRE.AFFA_LIBELLE, OPERATION.OPER_DATEINSCRI, OPERATION.OPER_HEUREINSCRI, OPERATION.OPER_DATEDEBUTP, OPERATION.OPER_HEURDEBUTP, OPERATION.OPER_DUREEJOURP, OPERATION.OPER_DATEFINP, OPERATION.OPER_HEURFINP, OPERATION.OPER_DUREEPRESP," & _
" OPERATION.OPER_DATEDEBUTR,OPERATION.OPER_HEURDEBUTR , OPERATION.OPER_DUREEJOURR, OPERATION.OPER_DATEFINR, OPERATION.OPER_HEURFINR, OPERATION.OPER_DUREEPRESR, OPERATION.OPER_COMMENTAIRE, OPERATION.OPER_COUTP, OPERATION.OPER_COUTFOURNIP, OPERATION.OPER_COUTR, OPERATION.OPER_COUTHEURESR, OPERATION.OPER_COUTFOURNIR, OPERATION.OPER_COUTDIVERS, OPERATION.OPER_CONTENU, OPERATION.OPER_CONSIPARTI, OPERATION.OPER_CPTRENDU, OPERATION.OPER_CAUSE_TSVA, OPERATION.OPER_TSVA, OPERATION.OPER_DUREE_ASTREINTE" & _
" FROM ((((SITE INNER JOIN (FAMILLE_EQUIPEMENT INNER JOIN (EQUIPEMENTS INNER JOIN ((ETAT_AVANCEMENT INNER JOIN (TYPE_OPERATION INNER JOIN (OPERATION INNER JOIN LOCALISATION_OPER ON OPERATION.OPER_CODE = LOCALISATION_OPER.OPER_CODE) ON TYPE_OPERATION.TOPE_CODE = OPERATION.TOPE_CODE) ON ETAT_AVANCEMENT.AVAN_CODE = OPERATION.AVAN_CODE) INNER JOIN EQUIPE_TRAVAUX ON LOCALISATION_OPER.TRAV_CODE = EQUIPE_TRAVAUX.TRAV_CODE) ON EQUIPEMENTS.EQIP_CODE = LOCALISATION_OPER.EQIP_CODE) ON FAMILLE_EQUIPEMENT.FAME_CODE = EQUIPEMENTS.FAME_CODE) ON SITE.SITE_CODE = LOCALISATION_OPER.SITE_CODE) INNER JOIN BATIMENT ON LOCALISATION_OPER.BAT_CODE = BATIMENT.BAT_CODE) INNER JOIN ZONES ON LOCALISATION_OPER.ZONE_CODE = ZONES.ZONE_CODE) INNER JOIN LOCALE ON LOCALISATION_OPER.LOCA_CODE = LOCALE.LOCA_CODE) INNER JOIN AFFAIRE ON LOCALISATION_OPER.AFFA_CODE = AFFAIRE.AFFA_CODE" & _
" WHERE ((OPERATION.OPER_DATEINSCRI BETWEEN ('%" & Date1 & "%') AND ('%" & Date2 & "%')))" & _
" ORDER BY OPERATION.OPER_CODE"

Merci pour votre aide
A voir également:

3 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
13 avril 2010 à 13:55
Bonjour,

Tout d'abord il faut que le format date soit formaté. Par défaut c'est le format US (mm/dd/yyyy), ensuite il faut ajouter les sharpes (#) pour entourer la date:

WHERE ((OPERATION.OPER_DATEINSCRI BETWEEN ('% #" & Date1 & "# %') AND ('% #" & Date2 & "# %')))"

;o)
0
Salut Plux31,

1- comment formater le format date ?
2- j'ai déja tester avec les sharpes (#) ca ne marche pas :(

tu as d'autres idées«????

Merci pour l'interet
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
13 avril 2010 à 18:03
Date1 = Format(Date1,"mm/dd/yyyy")


Tu fais de même pour Date2 et tu mets ça juste avant Sql 2 = "SELECT .....

Sinon, dans Access tu vas dans requête et tu ouvres une nouvelle requête, tu passes en mode SQL et tu colles ta requête en mettant des dates à la place de Date1 et Date2. Exécutes la requête pour voir si tu as un message d'erreur ou si elle passe.

;o)
0
Bonjour,

Je cherche la requête pour la date limite qui correspond à la date limite d'intervention avant pénalité dans la GMAO (le délais maximal entre la date d'acquittement et la date de fin d'intervention du technicien)

J'ai essayé OPER_DATELIMIT, OPER_HEURFINL sans succès

Cordialement
0