|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonjour à tous,
Je viens ici solliciter votre aide. Voilà mon problème: J'ai le champs "Date" de ma requête qui est sous ce format => "aaaamm" Existe t-il un code au autre qui pourrait me permettre de la rendre sous un format standart tel que: "aaaa/mm" ? D'avance merci |
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonsoir
La requête n'est pas une fin en soi. En général elle sert de source à un formulaire ou état. Dans ceux-ci, il suffira de mettre la zone de texte correspondante au format que tu souhaites. Il faut bien sûr que le champ de la table source soit à un format Date/heure.
__________________
Plus j'avance et plus j'ai l'impression de ne rien savoir. Et comme j'essaie d'aller loin..!!. Tutoriels sur:http://jdgayot.developpez.com Pas de sujets techniques par Mp. Sinon
|
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonsoir ;-)
Ma table source est bien au format "Date", en revanche, pour effectuer ma requête (calcul de taux par rapport à la date) j'ai été contraint de concaténer la date au format : "AAAAMM" Tu as raison, c'est bien un état que je souhaite dès à présent réaliser, mais je ne vois pas dans les propriétés de ce dernier la manière de redonner le format initial de ma date: MM/AAAA Raison pour laquelle je fais appel à votre aide Merci à toi |
|
|
00
|
|
|
#4 |
![]() ![]() |
Bonjour
Tout se fait dans la propriété Format de ton champ qui comporte la date. Ouvre ton état en mode création. Clique droit sur le champ concerné et tu sélectionnes Propriétés (tout en bas). Tu vas dans l'onglet Format et dans la propriété Format tu écris simplement mm/aaaa Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
C'est pas une heure pour répondre ça ...Soit tu es un couche tard, soit un lève tôt
Merci Philippe pour ta réponse, hélas ça ne fonctionne pas. Pour résumer, j'ai réalisé une requête qui "concatène" un champs date et qui me donne comme résultat ceci => "20101" = Janvier 2010. Le résultât de cette requête, contrairement à ce que j'avançais plus haut, n'est pas au format Date et visiblement ne peut l'être par les propriété de mon état. Encore merci |
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Marcel Directeur technique Inscription : avril 2011 Messages : 100 ![]() |
Bonjour Steph,
Ceci n'a peut-être rien à voir, mais dans ton premier Post tu écris, "J'ai le champ Date " Date est un mot reservé, et par expérience, je sais que lorsque tu utilises un mot réservé dans un état, c'est la pagaille assurée. Bien à toi Marcel. |
|
|
00
|
|
|
#7 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonsoir Marcel,
En fait mon champ date se nomme en réalité "AnnéeMois", il résulte d'une formule de calcul qui consiste à calculer des taux, et pour se faire j'ai été contraints de concaténer la date => Code :
SELECT Year([Dte_Inter]) & Month([Dte_Inter]) AS AnnéeMois..... Merci |
|
|
00
|
|
|
#8 |
![]() ![]() |
Bonjour
Donc ce n'est pas un champ de type Date, et donc le formatage ne fonctionnera pas. Il faut faire le formatage en créant un champ qui te donne cela en faisant de l'extraction de chaine (Left, right, etc...) Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
00
|
|
|
#9 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonsoir Phil,
Avec deux mois d'access à mon actif, je crains d'être trop "juste" pour réaliser cette "extraction" sans un coup de pouce...Peux-tu me mettre sur une piste ? Merci |
|
|
00
|
|
|
#10 |
|
Membre régulier
![]() Marcel Directeur technique Inscription : avril 2011 Messages : 100 ![]() |
Bonjour Steph, Philippe et tous les autres.
Pour aider Steph, je vous prie de m'excusez de parler un peu de moi. Je ne le ferais si je n'étais pas persuadé de l'utilité que ça pourrait apporter aux débutants. -J'écris juste un peu de code VBA -Je suis encore moins informé sur SQL. Pourtant, j'ai écrit un programme comptable complet pour ma petite entreprise avec gestion des fiches de travail à l'atelier, des tiers, et des stratistiques. Je me suis tout récemment inscrit sur le site pour améliorer les performances de ma base en ajoutant du code. Je trouve déjà de multiples réponses en lisant les discussions. Surpris par les connaissances en code des débutants par rapport à moi, je le suis autant par le nombre de bases de données mal structurées dès le début. J'ai l'impression que les développeurs amateurs sont axés prioritairement sur le code. Ils demandent et obtiennent des formules des émérites et chevronnés qui les aident à rebondir. Cependant, si l'erreur de base est là, elle les attend plus loin, comme une baffe derrière la haie. En ce qui concerne Steph, je pense comprendre, qu'il veut remplir un champ "Taux" avec une ou des valeurs différentes en fonction de la date qu'il introduit. Eh bien Steph, la bonne méthode est de créer ces deux champs dans TaTable, (Pense à nommer le champ "DateDoc" par exemple et pas "Date")de leur donner les formats et types de données désirés. Ensuite, crée une requête dans laquelle tu ajoutes tous les champs de TaTable. Tu la nommes TaTable_R? Point final pour cette requête, oublie ces concaténations compliquées. Et puis, tu crées un formulaire basé sur la requête TaTable_R, tu y ajoutes les champs. Sur DateDoc beforeupdate, tu écris une procédure If, qui en fonction de la date que tu entres, remplira le champ taux. Va voir dans TaTable, les champs "DateDoc" sont remplis comme tu les as saisis, et les champs "Taux" comme tu le souhaites. De plus ces champs sont disponibles, utilisables, par exemple pour créer une requête qui servira de source pour un état. A bientôt. Marcel |
|
|
00
|
|
|
#11 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonsoir Marcel
Pas évident effectivement d'être un autodidacte de 40 balais... Avec "zéro" pré-requis en Access, VBA, SQL, la tâche m'est "hardue" !! Il y a encore 3 mois, je ne savais pas ce qu'était ACCESS ! si si Du coup, j'ai investie dans "Access pour les nuls, VBA pour les nuls, et le guide complet Access 2007" ![]() Je me rends bien compte que je ne suis pas un grand doué, mais je me surprends à aimer çà !! Va comprendre ! ![]() Mon plus grand regret est de n'avoir personne avec de solides connaissances en développement à mes côtés...Du coup, je passe beaucoup de temps sur le Net à la recherche de renseignements à tel point que ma femme me soupçonne d'avoir une maîtresse Pour revenir à mon problème initial et n'étant pas certain d'être très explicite, je vous joins le lien de la discussion qui m'a emmener ici... http://www.developpez.net/forums/d10...-taux-via-sql/ En d'autre termes, je souhaiterais que le champs "AnnéeMois" qui est le résultat d'une succession de requêtes soit au format "MM/AAAA" En même temps, je vais étudier ta méthode Marcel. Merci infiniment |
|
|
00
|
|
|
#12 |
|
Membre régulier
![]() Marcel Directeur technique Inscription : avril 2011 Messages : 100 ![]() |
Bonjour Steph,
Puisque, comme tu dis, tu te surprends à aimer ça, je vais te donner une raison supplémentaire de perséverer: J'ai presque 20 ans de plus que toi, j'ai commencé avec access 97 en 1999, seulement pendant un an, et j'ai laissé en suspens pour des impératifs professionnels. J'ai repris en 2010 avec access 2007. Comme toi, je suis passé par access pour les nuls, le grand livre d'accès etc...... Je n'avais pas à ma disposition, les forums que toi tu as! Personne ne te prendra la main pour écrire avec toi ton SGBD. Cependant, les forums, s'ils t'apportent de l'aide, te demandent aussi un travail sur toi. Les réponses ne correspondent pas nécessairement à ton cas, ton niveau, ou tes besoins. C'est à toi de débroussailler. Pour en revenir à ta demande: Jean-Damien avait d'abord attiré ton attention sur la nécessité que ton champ soit de type Date/Heure Philippe te signale ensuite que ça ne marchera pas puisque ton champ n'est pas de type "date" Tu persistes en demandant que quelqu'un te trouve quand même une formule magique, pour réaliser l'impossible. Crois-tu qu'ils vont encore te répondre? Je pense que je pourrais réaliser ce que tu souhaites, mais pas de cette façon, et si tu es preneur, ma prochaine réponse commencera par une liste longue de recommandations et de questions. Ce sera ensuite à toi de travailler. A toi de voir! Passe un très bon dimanche, et n'oublie quand même pas Madame! Bien à toi. Marcel. |
|
|
10
|
|
|
#13 |
|
Expert Confirmé Sénior
![]() Pierre GONZALEZDéveloppeur Office VBA Inscription : août 2005 Messages : 3 412 ![]() |
Bonjour.
La discussion est devenue un peu longue et j'ai un peu survolé. J'ai peut-être manqué qqc qui explique pourquoi tu ne modifies pas ta requête pour avoir une date, comme ? Cordialement, PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon |
|
|
00
|
|
|
#14 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonsoir Marcello et pgz
J'ai bien conscience que l'investissement est essentiellement personnel et je n'attends pas des réponses toutes faites, ce n'est pas ce que je demande... Je trouve d'ailleurs que les participants sur ce forum sont assez pédagogues ! ![]() Pour en revenir au sujet principal, je ne cherche pas une formule magique, simplement une piste (à ma porté) pour redonner un format "date" standard au résultat de ma requête. Pour faire court, les calculs de mes taux, sont le résultat d'une succession de 3 requêtes. Le résultat final donne un taux de pannes par ans, par mois, et par machines. C'est certainement la raison principale qui à conduit Richard_35, sur le forum SQL, de me faire concaténer la date. Alors Marcello, si tu le souhaites, je suis prêt à relever le défi et répondre à tes questions => pgz, sauf erreur de ma part, si je ne modifie pas ma requête c'est que le résultat doit absolument être comme décrit ci-dessus. Tu comprendras certainement mieux en lisant le bas de la page qui suit http://www.developpez.net/forums/d10...-taux-via-sql/ Merci à vous |
|
|
00
|
|
|
#15 | ||
|
Membre confirmé
![]() Développeur amateur Inscription : mars 2009 Messages : 176 ![]() |
Bonjour,
Je pense que la solution proposée par philipe est celle qui convient le mieux à ton cas. En détail: Code :
|
||
|
|
00
|
|
|
#16 | |
![]() ![]() ![]() |
Citation:
Tu devrais la modifier "un peu" Code :
SELECT Year([Dte_Inter]) & Format(Month([Dte_Inter]),'00') AS AnnéeMois Cela te simplifiera aussi le travail de transformation de ta chaine YYYYMM en MM/YYYY, puisque, ainsi, systématiquement tu prendras les 2 derniers caractères pour les concaténer à un / puis aux 4 premiers caractères.... Comme ceci : Code :
SELECT Right([AnnéeMois],2)&'/'&Left([AnnéeMois],4) as MonMois Voilà
__________________
1formaxion, une formation de qualité, des formateurs compétents Mes tutoriels et vidéos : Tableaux croisés dynamiques, Access les Bases, et les autres ! |
|
|
00
|
|
|
#17 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonjour à tous,
Maxence, ta remarque concernant le fait que le mois doit être sur 2 positions me semble pertinente J'ai modifié l'expression sur mes 2 premières requêtes et déjà ma date est systématiquement sur 6 caractères "YYYYMM" ![]() En revanche j'ai un message d'erreur "Division par zéro" sur la requête faisant appel à l'expression "SELECT Right ..." Je retourne creuser çà !! ... => Reedy, la méthode de Maxence me parait plus accessible pour le moment, mes connaissances en "code" étant quasi nulles Encore merci à vous |
|
|
00
|
|
|
#18 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonjour à tous,
Tout fonctionne parfaitement. En revanche, lorsque j'exécute ma requête, le champ date n'est pas reconnu en tant que tel, et ses propriétés n'y changent rien. Du coup, le tri n'est possible que de "A" à "Z" et non pas du plus petit au plus grand. Je suis preneur de toutes idées... Un grand merci à vous tous et à Maxence
|
|
|
00
|
|
|
#19 |
![]() ![]() ![]() |
Quel champ Date ?
__________________
1formaxion, une formation de qualité, des formateurs compétents Mes tutoriels et vidéos : Tableaux croisés dynamiques, Access les Bases, et les autres ! |
|
00
|
|
|
#20 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonjour Maxence,
Celui-ci: Code :
SELECT Right([AnnéeMois],2)&'/'&Left([AnnéeMois],4) as MonMois |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com