ACCESS fORMAT

MISTERENART -  
 medali -
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. Lupin
     
    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
  2. misterenar
     
    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
  3. Utilisateur anonyme
     
    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
  4. Utilisateur anonyme
     
    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. Utilisateur anonyme
       
      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. medali
       
      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