Date dans access

Résolu
Bonjour,

Est ce que quelqu'un pourrait me dire pourquoi je suis obligé dans VBA Access d'écrire les dates sous ce format et à quoi cela correspond. """" & date & """".
Merci de vos réponses

A bientôt

5 réponses

  1. Contributeur
    bonjour,
    peux-tu montrer ton code?
    pourquoi penses-tu être obligé de faire cela?
    veux-tu dire que cela fonctionne de cette manière et que tu n'en connais pas d'autre?
    qu'essaies-tu de réaliser?
    1. Bonjour yg_be

      Private Sub Commande44_Click()

      DateDebut.DefaultValue = """" & Date & """"
      DateFin.DefaultValue = """" & Date & """"

      End Sub

      Si je ne mets pas de """" Access me retourne une erreur.

      Comme cela ca marche très bien mais je veux savoir pourquoi.

      Merci
      1. Contributeur
        quelle erreur reçois-tu en essayant quoi exactement?

        tu ne nous expliques pas ce que sont DateDebut et DateFin.

        as-tu essayé:
        DateDebut.DefaultValue = cstr(date)
        ?
      2. Contributeur
        @yg_beas-tu bien compris à quoi servait
        .DefaultValue
        ?
        pourquoi fais-tu cela par VBA plutôt que de le faire dans la définition du formulaire?
        ce que tu précises comme
        .DefaultValue
        est évalué par Access quand tu crées un nouvel enregistrement via le formulaire. si tu précises 2/4, Access va calculer un demi.
        si tu veux que Access y mette la date, il faut faire ainsi:
        .DefaultValue = "=date()"

        et c'est beaucoup plus simple de le faire via la définition du formulaire, non?
    2. Datedebut et DateFin sont des champs dans un formulaire qui permettent de renseigné une requête pour gérer des dates de formations.

      Dans un formulaire j'ai créé 3 boutons qui renseignent DateDébut et DateFin

      1) date du jour pour les deux Champs (DateDebut et DateFin)
      DateDebut.DefaultValue = """" & Date & """"
      DateFin.DefaultValue = """" & Date & """"

      2) date d'hier pour les deux Champs (Datedebut et DateFin)
      DateDebut.DefaultValue = """" & Date - 1 & """"
      DateFin.DefaultValue = """" & Date - 1 & """"

      3) DateDébut = date du jour et DateFin = date du jour + 9
      DateDebut.DefaultValue = """" & Date & """"""
      DateFin.DefaultValue = """" & Date + 9 & """"

      Ca marche très bien avec cette syntaxe DateDebut.DefaultValue = """" & Date & """"

      Si j'écris
      DateDebut.DefaultValue = Date
      il me renvoi la date du 30/12/1899.
      Pourquoi être obliger d'utiliser la syntaxe particulière ?
      1. Contributeur
        alors je ne comprends pas pourquoi tu utilises
        DefaultValue
        au lieu de
        Value
        .
        DateDebut.Value = date

        c'est parce que as choisi d'utiliser
        DefaultValue
        que tu dois ainsi en préciser la valeur.
      2. Contributeur
        @yg_besi tu précises
        DateDebut.DefaultValue = Date, tu donnes à Access comme DefaultValue: 8/2/2021.
        Comme c'est une DefaultValue et pas une Value, il fait ensuite le calcul, 8 divisé par 2 divisé par 2021.
        Il obtient une valeur numérique.
        Tu n'expliques pas comment cette valeur numérique est transformée en date.
        DateDebut est-il un contrôle de type TextBox? tu n'as pas expliqué précisément ce que c'était ni comment il était affiché.
    3. Merci pour tes renseignement en effet en passant par valeur directement il y a pas besoins des guillemets

      Pourquoi DefaultValue ? Parce que dans un autre formulaire de saisie de données, j'utilise beaucoup DefaultValue pour éviter les refrappes. J'ai reprise les même code pour ce formulaire.

      Ca sert à quoi les Symbole """"" & avant et après la date dans DafaultValue ?
      1. Contributeur
        tu peux le vérifier facilement, par exemple en faisant
        msgbox """" & Date & """"
        .
        cela fournit
        "8/2/2021"
        au lieu de
        8/2/2021
        .
        et donc Access ne va pas faire le calcul de DefaultValue, puisqu'il voit bien que c'est une chaine de caractères.

        si tu veux utiliser
        DefaultValue
        , fais ainsi, comme j'ai expliqué en #':
        .DefaultValue = "=date()"
        .DefaultValue = "=date() - 1 "
        .DefaultValue = "=date() + 9"


        je pense qu'il n'est utile d'utiliser DefaultValue en VBA que dans un formulaire en continu, si DefaultValue est dynamique et ne peut pas être défini (via une formule) dans le formulaire.
        ici, tu n'es pas dans un formulaire en continu.
    4. Merci, pour les infos,
      Très bien
      bonne journée
      1. Contributeur
        peux-tu alors marquer la discussion comme résolue?