ACCESS fORMAT

Fermé
MISTERENART - 23 juin 2004 à 18:05
 medali - 21 juil. 2004 à 13:43
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.
A voir également:

4 réponses

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
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
Utilisateur anonyme
23 juin 2004 à 20:56
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
Utilisateur anonyme
23 juin 2004 à 21:25
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
Utilisateur anonyme
23 juin 2004 à 21:43
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
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