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 :

"Date, Général" bug [AC-2007]


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut "Date, Général" bug
    Bonjour à tous!

    J'ai un problème avec Access 2007 (je suis sur windows 7), j'utilise le format
    "Date, général" pour l'une de mes tables (et je dois utiliser ce format) and j'ai un problème un peu mystique... Je ne peux pas créer de date valide pour le premier jour de chaque mois.

    Je m'explique:
    Je créé un nouvel enregistrement pour le 31/12/12, pas de soucis, ça m'affiche "Lundi, Décembre 2012" (dans la table ou le formulaire associé) et quand je clique sur la date, ça m'affiche "31/12/12". Je fais tourner du vba en utilisant ces enregistrements sans problème.

    Maintenant, je veux ajouter un enregistrement pour le 01/01/13. Ca m'affiche "Mardi, Janvier 2013", tout va bien, mais si je clique dessus, rien ne change.
    Et la date n'est alors pas considéré comme valide quand j'exécute mon code vba.

    Et c'est la même chose pour 01/02/13, 01/10/11, ce que vous voulez... J'ai essayé sur différents PC, fait "compacter et reparer", mais rien n'y fait...

    Si quelqu'un a une idée de ce qui se trame dans les profondeurs d'access, je le remercie par avance!

    Basile

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

    Si la saisie est bien validée dans la table (manuellement), peut-être que cela vient du code VBA.

    As-tu un message d'erreur et si oui lequel et où ? Et avec le code ce serait mieux.

    Philippe

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Philippe JOCHMANS Voir le message
    Bonjour

    Si la saisie est bien validée dans la table (manuellement), peut-être que cela vient du code VBA.

    As-tu un message d'erreur et si oui lequel et où ? Et avec le code ce serait mieux.

    Philippe
    Justement, access ne me donne pas l'impression que la date soit réellement validée dans la table. Cependant même en changeant de format de date, le problème subsiste (j'ai aussi essayé sur une nouvelle base vide, etc).

    Ce qui ne fonctionne pas dans le code est que j'utilise une bete requete sql pour extraire des infos à des dates précises. Et dès que je tombe sur un premier du mois, j'ai droit à un "Erreur d'exécution 3021: Aucun enregistrement en cours"

    Ma requete est la suivante (je l'ai abrégée pour garder l'essentiel):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT VolumePrev FROM Projet WHERE Date = #" & CDate(DateR.Value) & "#"
    CDate(DateR.Value) = "01/01/12"

    En gros, bien que ma table ait un enregistrement pour le 01/01/12 par exemple, la requete me retourne un recordset vide (d'où le message d'erreur quand j'essaie par la suite d'utiliser ce recordset). Ma requete fonctionne très bien pour toutes les autres dates...

    Merci pour l'aide,
    Basile

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 392
    Points : 19 817
    Points
    19 817
    Billets dans le blog
    66
    Par défaut
    Salut,

    Peut-être un problème de format de date :

    Le SQL d'Access ne comprend que les dates sous la forme "mm/jj/aaaa", qui est le format US.

    Donc essaie ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT VolumePrev FROM Projet WHERE Date = #" & Format(DateR.Value,"mm/dd/yyyy") & "#"
    Remarque importante : Il faut éviter absolument les mots réservés pour les noms des champs. Date est un mot réservé pour Access

    A+

  5. #5
    Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Ahahah, j'adore! Je venais justement de trouver cette solution et je voulais écrire un message pour l'annoncer, et je lis ton message qui donne la même réponse!
    Merci beaucoup déjà!

    Ensuite, ce que je ne comprend pas, c'est que quand j'utilisais le format non-américain, cela marchait quand même pour la plupart des dates... Pour le mot clé réservé, j'ai un peu merdé effectivement au début du projet, mais bon maintenant que ça roule.

    Merci pour l'aide

    Basile

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 392
    Points : 19 817
    Points
    19 817
    Billets dans le blog
    66
    Par défaut
    Oui, il inversait peut-être jour et mois..

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

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