ACCESS fORMAT

Bonjour à toutes et à tous,

Mon problème est particulier.

J'ai une base de donnée sous ACCESS.
Les tables proviennent de fichiers EXCEL que j'ai importés sous ACCESS.
Dans cette table, j'ai un champ qui contient des dates. Malheureusement, ce champ, même s'il contient des dates, est un champ de type texte (et je ne peux pas le chger en champ de type date).

Tout le problème est que je souhaiterais convertir ce champ texte en champ de type date. Mon but est d'avoir uniquement les dates qui sont supérieurs au 01/01/1987. Et evidemment, avec un champ de type texte, je ne peux mettre comme critère >#01/01/1987#

J'ai essayé la fonction format, mais, peut-être que je m'y prends mal, ça n'a pas l'air de marcher très bien.

Qq a-t-il une idée géniale ?

Merci bcp pour votre aide.

Renart.

4 réponses

  1. Bonjour,

    Personnellement, dans ces cas typiques, je créé un champ
    invisible sur le formulaire, mais présent dans la table, et je
    recopie le data formatté dans ce champs.

    Ensuite le tri est possible!

    Votre date se défini comment :
    jj/mm/aaaa ou mm/jj/aaaa ???

    Pour l'utilisation de l'instruction format, ça fait une différence.

    Lupin
    0
    1. Merci bcp pour la réponse.
      Ma date se définit de la façon suivante : jj/mm/aaaa.
      Je puisse mes infos directement d'un fichier excel externe que je ne contrôle pas. Je n'ai pas de formulaire.

      Encore merci pour l'aide.

      Renart.
      0
      1. re :

        Ëtes-vous a l'aise avec le VBA derrière access ?

        Un petite routine vous permettra de convertir
        la donnée d'un champ à l'autre.

        Lupin
        0
        1. suite :

          Voici un exemple :

          Vous devez créer une requète générale qui charge tous les enregistrements de la table.

          Public Sub Conversion()

          Dim Ensemble As Recordset
          Dim Chaine As String
          Dim Boucle As Long

          Set Ensemble = CurrentDb().OpenRecordset("RequeteGenerale")
          Ensemble.MoveLast
          Ensemble.MoveFirst

          For Boucle = 1 To Ensemble.RecordCount
          Chaine = Ensemble.Fields("Cassette").Value
          Ensemble.Fields("Cassette").Value = Format(Chaine, "dd/mm/yyyy")
          Ensemble.MoveNext
          Next Boucle

          End Sub

          Lupin
          0
          1. oups!

            Chaine = Ensemble.Fields("Cassette").Value
            Ensemble.Fields("Cassette").Value = Format(Chaine, "dd/mm/yyyy")

            devrait se lire :

            Chaine = Ensemble.Fields("Champ1").Value
            Ensemble.Fields("Champ2").Value = Format(Chaine, "dd/mm/yyyy")
            0
          2. Bonjour,

            J'ai créé une requête sous ACCESS.
            j'ai inséré une expression qui calcule une echéance dynamique entre deux dates : Echéance: [dateaprès]-now()
            la variable dateaprès n'existe pas dans ma table.
            Donc à l'execution de la requête, je tape la valeur de [dateaprès] dans le Msgbox .
            mais le problème, la reqête me renvoie des erreurs an niveau du champs Echéance car la valeur Dateaprès que j'ai tapée est malheureusement du type texte.
            j'ai essiayé au niveau critère #dd/mm/yy", et aussi ceci
            échéance: format(dateaprès ,"dd,mm,yy")-now() ça n'a pas marché

            donc svp, est -il possible de convertir cette dernière du type texte au type date au niveau de la requête sans creer une routine.

            chaleureux merci pour votre aide!!
            0