Conversion de date sous accessavec tables AS400 [Résolu]

Signaler
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010
-
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010
-
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

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
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
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010

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.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
passes ca en string,
découpe via Mid$
et recrée une date valide en utilisant DateSerial
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010

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?).
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
il serait surement plus adapté d'utiliser une macro, mais une requete SQL doit pouvoir faire cette conversion.
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010

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. 
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010

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.
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010

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^^.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
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...
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010

Oki, décidement ce site est génial , j apprend des choses et franchement ca va bien m aider.

Merci beaucoup de ta sympathie^^
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
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
Messages postés
8
Date d'inscription
samedi 11 novembre 2006
Statut
Membre
Dernière intervention
6 janvier 2010

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é.