Conversion de date sous accessavec tables AS400

Résolu
steffaceur
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010
- 16 avril 2008 à 10:42
steffaceur
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010
- 6 janv. 2010 à 20:24
Bonjour,
j'ai un problème sur une base access que j'ai développé ( je suis un gros débutant).J'ai lié des tables AS400 à ma base pour récupérer les données qui s'y trouvent et mes dates sont en champs numériques de forme CYYMMDD.Le problème est que je n'arrive pas à les convertir en champ date DD/MM/YYYY sous access, c'est dommage car il ne me reste plus que ca à faire et je pourrais gérer mes appros à partir de cette base.
Merci d'avance de vos réponses.

PS: je débute sur access et le code est encore très flou pour moi^^.

12 réponses

Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
21 avril 2008 à 04:29
taper "CYYMMDD" sur google m'a donné cela:

http://www.tek-tips.com/viewthread.cfm?qid=1308844&page=1

a voir, ca a l'air fonctionnel
3
steffaceur
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010

6 janv. 2010 à 09:09
Bonjour,
suite et fin de mon poste, j'ai trouvé comment faire, déjà grâce à Renfield à qui je dis un grand merci, et donc je met la solution qui pourra peut être servir à d'autres.
A partir de la date AS 400 sous forme CYYMMDD (Ex: 1100106 pour aujourd'hui):
- J'ai crée une requête avec ce calcule sur la date: [Champ]+19000000
- Dans mon état final je traite mon champ [Date] comme ceci: =CDate(Droite([Date];2) & "/" & ExtracChaîne([Date];5;2) & "/" & Gauche([Date];4)).Ce qui me donne bien u affichage DD/MM/YYYY(06/01/2010).

Voilà, je ne sais pas si c'est la meilleure solution, mais ca marche.
3
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
16 avril 2008 à 10:54
passes ca en string,
découpe via Mid$
et recrée une date valide en utilisant DateSerial
0
steffaceur
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010

16 avril 2008 à 11:04
Merci déjà de me répondre.
Le soucis (non ne me jetez pas des cailloux!!)est que je ne comprend pas bien .Comme je l'ai dit je suis vraiment un gros débutant^^.
Pourrais tu m'expliquer plus en détail s'il te plait ( faut il que je le fasse dans une requête?).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
16 avril 2008 à 11:08
il serait surement plus adapté d'utiliser une macro, mais une requete SQL doit pouvoir faire cette conversion.
0
steffaceur
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010

16 avril 2008 à 20:08
Ok merci de tes réponses.
De toutes facon en postant et au vue de ta réponse, je me suis acheté un livre pour apprendre le language visual basic, car c'est encore du charabia pour moi et donc même en précisant ta réponse je pense qu'il vaut mieux qu j'aquérisse les bases.je ne connait qu'acces sous sa forme la plus simple, tables requêtes formulaires et etats.

Enfin si tu veux être plus précis ne te gène pas(lol), ca ne pourra que m'aider. 
0
steffaceur
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010

20 avril 2008 à 22:06
pourrais tu me donner un exemple du code a appliquer pour mon probleme, car je potasse un livre sur vba et j'ai regardé tout le week end sur le net mais je n'ai rein trouvé encore de concret, et j'aurai vraiment besoin de ce code pour finir ma base.Je commence à comprendre le fonctionnement de vba mais pour ce probleme la je seche et un gros coup de main me depannerai bien.merci d'avance.
0
steffaceur
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010

21 avril 2008 à 21:37
Merci, ca marche pour la premiere partie, j ai maintenant un champ numerique de forme yyyymmdd, il ne me reste qu a le mettre dans le bon sens, je devrai trouver (j'espere).Et puis j'ai aussi appris une chose:Ne pas etre trop precis sur google^^.

PS: Je vai continuer a potasser des bouquins sur VBA et peut etre qu un jour je pourrais aussi donner des réponses^^.
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
22 avril 2008 à 06:45
stop! c'est le bon sens...
c'est international...

reste a en faire une vraie date ^^

te faut en faire une chaine de caractère.... les dates sont stockées comme un nombre de (secondes?) de puis je sais plus quelle année... donc, pas de YYYYMMDD... juste un décalage...
0
steffaceur
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010

22 avril 2008 à 19:59
Oki, décidement ce site est génial , j apprend des choses et franchement ca va bien m aider.

Merci beaucoup de ta sympathie^^
0
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
6 janv. 2010 à 09:16
pas bon de faire ce genre de manipulation sur le texte des dates.

quel est le C ? de ton format ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
steffaceur
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010

6 janv. 2010 à 20:24
Re,
en fait dans ma base les champ date sont typés en numérique et sous la forme 1100106 (1 étant le siècle puis 10 l'année ainsi de suite).
Du coup la 1° fonction que tu m'avais donné (cf quelques messages plus haut) me permet d'avoir le champ numérique sous la forme 20090106.Du coup si tu veux faire des calculs avec les dates cela ne pose pas de problème.
Et juste pour l'affichage dans l'état final(cela ne reste que du visuel), je fais la 2° fonction qui me permet d'avoir un meilleur confort de lecture en ayant 06/01/2010.

Si il y a une façon plus fiable de faire je suis preneur, car là c'est la seule assez simple que j'ai trouvé.
0