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 :

Fonction Date() sous Acces 2003 ne marche pas.


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 56
    Points : 36
    Points
    36
    Par défaut Fonction Date() sous Acces 2003 ne marche pas.
    Bonjour à tous.

    Je viens de terminer ma base de donnée et en voulant la mettre sur l'ordinateur de mon responsable j'ai remarqué que la fonction Date() dans mes requêtes n'était pas reconnue. Mon responsable a Access 2003 et je pense que la fonction Date() n'existe pas dans cette version.

    J'ai besoin de cette fonction dans des requêtes qui permettent de consulter les RDV du jour sans avoir à saisir la date d'aujourd'hui.
    Dans Champ j'ai entré : Ent([DateRDV]) et dans Critère : Date()

    Soit le code SQL suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Civilite]+" "+[PrenomClient]+" "+[NomClient] AS Client, [NomSal]+" "+[PrenomSal] AS [Agent responsable], RDV.HeureRDV AS [Heure du RDV], RDV.LieuRDV AS Lieu, RDV.ServiceRDV AS Service, RDV.MotifRDV AS [Motif du RDV], RDV.ResultRDV AS Résultat, RDV.CommentaireRDV AS Commentaire, RDV.DatePriseRDV AS [RDV pris le], RDV.OrigineRDV AS Par, *
    FROM SALARIES INNER JOIN ((Civilite INNER JOIN CLIENT ON Civilite.NumCivilite = CLIENT.NumCiviliteClient) INNER JOIN RDV ON CLIENT.NumClient = RDV.NumClient) ON SALARIES.NumSal = RDV.NumAgentResponsable
    WHERE (((Int([DateRDV]))=Date()));
    Quelqu'un aurait-il la solution pour avoir le même résultat sous Access 2003 ?? Il faut peut être créer un module, c'est ce que j'ai dû faire pour avoir la même requête mais avec la semaine en cours, car la fonction Semaine n'était pas définie. Si tel est le cas, quelqu'un pourrait-il m'expliquer le module à créer et le code SQL que cela est censé générer ?

    Merci d'avance, et excusez mon ignorance ...

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Il peut s'agir d'un problème de références dans visual basic qui empêche la compilation du code.
    Regarde ici.

    A+

  3. #3
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour,

    ou la syntaxe de ta requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Civilite] & ' ' & [PrenomClient] & ' ' & [NomClient] AS Client, [NomSal] & ' ' & [PrenomSal] AS [Agent responsable], RDV.HeureRDV AS [Heure du RDV], RDV.LieuRDV AS Lieu, RDV.ServiceRDV AS Service, RDV.MotifRDV AS [Motif du RDV], RDV.ResultRDV AS Résultat, RDV.CommentaireRDV AS Commentaire, RDV.DatePriseRDV AS [RDV pris le], RDV.OrigineRDV AS Par, *
    FROM SALARIES INNER JOIN ((Civilite INNER JOIN CLIENT ON Civilite.NumCivilite = CLIENT.NumCiviliteClient) INNER JOIN RDV ON CLIENT.NumClient = RDV.NumClient) ON SALARIES.NumSal = RDV.NumAgentResponsable
    WHERE (((Int([DateRDV]))=Date()));
    A vérifier
    Gabout

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 56
    Points : 36
    Points
    36
    Par défaut
    d'accord, je vérifierais lundi en arrivant au bureau... mais il me semble néammoins que c'est la fonction Date() qui n'est pas définie dans la vesrion 2003 d'Access... je verrai bien.

    Merci, A+

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour

    La fonction Date existe bien sur Access 2003 (et heureusement), de même que sur 2007.

    Je pense plus à un problème de référence (comme le souligne LedZeppII), regardes sur le micro de ton boss.

    Starec

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 56
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Starec Voir le message
    Bonjour

    La fonction Date existe bien sur Access 2003 (et heureusement), de même que sur 2007.

    Je pense plus à un problème de référence (comme le souligne LedZeppII), regardes sur le micro de ton boss.

    Starec
    Donc c'est de l'ordinateur que viens le problème.

    J'ai ouvert Vba dans ma base de donnée sur le pc de mon supérieur mais n'ai rien trouvé qui ressemblé à Date... Je n'y comprends pas grand chose en références etc.

    Quelqu'un pourrait-il m'xpliquer où je dois chercher, ainsi que ce que je dois chercher ?

    Merci d'avance, et merci déjà à Starec, LedZeppII et tous ceux qui veulent bien essayer de m'aider...

  7. #7
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 896
    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 : 2 896
    Points : 4 784
    Points
    4 784
    Par défaut
    Pour voir, inscrire ou désinscrire les références de ton appli :
    tu ouvres l'editeur VBE (par ctrl-G par exemple puis dans le menu Outils/ References : tu vois s'il n'y en a pas une manquante ou différente de celles d'un poste OK .
    "Always look at the bright side of life." Monty Python.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 56
    Points : 36
    Points
    36
    Par défaut
    Je savais qu'il fallait aller dans les références (Ctrl G....) mais je ne sais pas ce qu'il faut rechercher...

    Help please, je ne peux pas naviguer d'un pc à l'autre pour voir ce qui est différent ...

  9. #9
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 104
    Points : 124
    Points
    124
    Par défaut
    Bonjour,
    on ne peut rien pour toi... le truc qui manque ne contient pas la fonction date() mais provoque le symptome ; ça peut-être n'importe quoi.
    je ne peux pas naviguer d'un pc à l'autre pour voir ce qui est différent
    Une impression d'écran ? Un collègue et deux téléphones ?

  10. #10
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    bonjour,

    il faut chercher une référence dans la boîte de dialogue "Références - VBAproject" qui commence par "MANQUANT :" et qui cochée.

    Exemple:
    MANQUANT : Microsoft ADO Ext. 2.8 for DDL and Security

    Je décoche cette référence et je cherche celle qui est disponible
    Microsoft ADO Ext. 2.1 for DDL and Security
    et je coche cette dernière.

    A+

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 56
    Points : 36
    Points
    36
    Par défaut
    Je n'ai trouvé aucune référence manquante...

    Mais j'ai eu une idée, je pourrai peut-être utiliser la fonction Maintenant() à la place, en la formatant...

    Quelqu'un peut-il m'aider à réécrire mes codes SQL avec la fonction Maintenant()? Je ne sais pas comment il faut faire, je sais seulement qu'il faut utiliser Format, mais ensuite

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (((Int([DatePriseRDV]))=Date()));

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    CInt(Date()-[DateNaissanceSal])/365.25 AS Age

    je voudrai Maintenant() au format jj/mm/aaaa

    Je sais que c'est quelquechose de simple à faire mais toutes mes tentatives ont échoué

    Merci d'avance à vous tous !!

  12. #12
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    je reste convaincu qu'il y a un problème du côté des références.
    Date existe bel et bien dans VB quelle que soit la version.
    Cela correspond à la référence "Visual Basic For Applications" présente dans tous les projets vba.

    Essaie ceci. Dans un module de code (pas dans celui d'un formulaire) met cette fonction :
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function DateDuJour() As Date
    DateDuJour = VBA.DateTime.Date
    End Function
    Utilise la fonction DateDuJour() à la place de Date().


    Et pendant qu'on y est, sur le PC de ton patron, fait Debug->Compilation depuis l'éditeur Visual Basic, pour voir s'il y a des erreurs reportées.

    Dans quelle version d'Access développes-tu ? On sait seulement que tu as un pb sur un PC avec 2003.

    A+

Discussions similaires

  1. fonction String sous Access 2003
    Par nonaparus dans le forum VBA Access
    Réponses: 3
    Dernier message: 17/10/2007, 15h52
  2. Macro sous VBE qui ne marche pas
    Par etudiant en hydro dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/03/2007, 17h28
  3. Un p'tit problème de calcul de dates sous Acces
    Par DB_noub dans le forum Access
    Réponses: 3
    Dernier message: 16/03/2007, 12h12
  4. Problème d'affichage de date sous access 2003
    Par FuNkY48 dans le forum Access
    Réponses: 7
    Dernier message: 11/12/2006, 14h04
  5. requête dans acces qui ne marche pas...
    Par sam01 dans le forum Access
    Réponses: 3
    Dernier message: 14/12/2005, 16h48

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