Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/11/2010, 17h02   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 4
Points : 1
Points : 1
Par défaut reformater toutes les valeurs d'un champ

bonjour, j'ai importé dans une base de donnée access un fichier texte qui comprenait un champ "date"

Après avoir travaillé longement avec cette base de données je suis amené a utiliser les valeurs de ce champs date. Or j'ai remarqué que la date est présentée comme suit dans ma table:
4082010 (pour 4/08/2010) ou encore 12072010 pour 12/07/2010

comment faire pour mettre a jour tous les champs pour qu'ils soit présenté correctement? (JJ/MM/AAAA)

Merci bcp
thomaspaul1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 17h56   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 445
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 445
Points : 7 517
Points : 7 517
Quel est le type du champ dans la table, c'est du texte ou un entier long ?

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 18h04   #3
Invité de passage
 
Inscription : novembre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 4
Points : 1
Points : 1
c'est un entier long
thomaspaul1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 18h34   #4
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 753
Points : 1 753
Bonsoir,
rien empêche de créer un champ supplementaire qui recueillera la date grâce à une requête Mise à jour
helas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 18h35   #5
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 445
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 445
Points : 7 517
Points : 7 517
OK, je te propose une solution mais il faudra que tu vérifie que le mois a bien été traité.

0) Sauvegarder ta BD
1) créer un champ date dans la table.
2) créer une requête de mise à jour (update)
3) dans la ligne MAJ du champ date :

dateserial(right(cstr([TonChampDateNum]),4), mid(format$([TonChampDateNum],"00000000"),3,2), left((format$([TonChampDateNum],"00000000"),2))

Si cela ne passe pas remplacer le , par des ;.

Un mot d'epxlication : dateSerial() créer une date à partir de l'année, mois et du jour. Donc
pour l'année : je récupère les 4 derniers chiffres du nombre
pour le mois : je force le nombre à 8 chiffres puis je prend les caractères 3 et 4
pour le jour : je force le nombre à 8 chiffres puis je prend les 2 premiers caractères

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 09h27   #6
Invité de passage
 
Inscription : novembre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 4
Points : 1
Points : 1
j'ai tout bien essayé mais ca marche pas

voilà la querry

DateSerial (Right(CStr([MinOfMinOfinvoice_date]);4); Mid( Format$([MinOfMinOfinvoice_date]; "00000000" ) ;3; 2; ); Left (( Format$( [MinOfMinOfinvoice_date]; "00000000" ) ;2))

et voilà le message d'erreur : the expression you entered has a function containing the wrong number of arguments (avec la dernière parenthèse en surbrillance (j'ai essayé en rajoutant une parenthèse car je croyais qu'il en manquait une mais rien à faire...

merci qd même pour l'aide
thomaspaul1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 11h39   #7
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 174
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 174
Points : 2 802
Points : 2 802
Bonjour thomaspaul1985,

Cette requête devrait fonctionner :
Code sql :
1
2
UPDATE Table1
SET Table1.date_1 = IIf(Len([date])=7,"0" & Mid([date],1,1) & "/" & Mid([date],2,2) & "/" & Mid([date],4,4),Mid([date],1,2) & "/" & Mid([date],3,2) & "/" & Mid([date],5,4))

Avec "date" étant ton "entier long" et "date_1" en format "date".

"Mid" correspond à la fonction "Extracchaîne" accessible par l'assistant (décidément, très pratique, soi dit en passant).

L'important étant de repérer 1012010 (len=7), le transformer en 01012010 (len=8), pour le re-transformer en 01/01/2010 valide, en final, pour un champ date.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 13h51   #8
Invité de passage
 
Inscription : novembre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 4
Points : 1
Points : 1
ca a marché :d
un tout grand merci a vous,
je crois que je reviendrai ;-)
thomaspaul1985 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h16.


 
 
 
 
Partenaires

Hébergement Web