Partage
  • Partager sur Facebook
  • Partager sur Twitter

Formater une date avant l'insertion depuis access

    24 janvier 2020 à 16:26:07

    Bonjours.

    J'utilise access 2016 pour créer une application.

    Cette base access est connecté avec odbc à une base SQLServer.

    odbc m'oblige d'utiliser les date en format yyyy-mm-dd.

    Donc dans ma base access elles sont sous se format.

    Le problème que j'ai est que l'utilisateur doit pouvoir rentré les dates en format français (dd/mm/yyyy)

    avec access.

    Ducoup comment je peut faire pour qu'un champ texte ou j'écris une date française inscrite la date dans le 

    bon format pour odbc ?

    • Partager sur Facebook
    • Partager sur Twitter
      24 janvier 2020 à 17:29:21

      Bonjour,

      Je pense qu'il te faut utiliser un composant DatePicker sur le formulaire de saisie utilisateur.

      Avec ce composant tu peux gérer le format d'affichage et le format de stockage indépendamment ...

      -
      Edité par Benzouye 27 janvier 2020 à 12:18:46

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        24 janvier 2020 à 21:32:15

        Bah après je me disais qu'on aurait pus avoir une solution du style mettre les date en français sous sql serveur. et du coup mes champs date pourraient être en version jj/mm/année
        • Partager sur Facebook
        • Partager sur Twitter
          24 janvier 2020 à 23:24:33

          En base de données, une date est une date, elle n'a pas de format ... le format est une conception "humaine", une façon de représenter...

          • Partager sur Facebook
          • Partager sur Twitter
          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
            26 janvier 2020 à 9:36:02

            Benzouye a écrit:

            En base de données, une date est une date, elle n'a pas de format ... le format est une conception "humaine", une façon de représenter...


            bah pourtant quand je veux entré une valeurs de date sous sql serveur elle n'accepte que les date en aaaa-mm-jj donc je trouve ça étrange.

            Et en VBA j'ai aucune idée ( puisque j'en ai jamais fait ) de comment on peut formater les dates sans que les champs soit modifié 

            • Partager sur Facebook
            • Partager sur Twitter
              26 janvier 2020 à 12:10:34

              Oui, tu lui donnes une chaîne de caractère, pas un objet date ... pour vous comprendre un format est défini, ainsi SQLserver interprète le format donné, et le transforme en objet date à sa sauce à lui...

              Sinon commence par regarder le composant DatePicker et ses propriétés, et également la méthode format().

              • Partager sur Facebook
              • Partager sur Twitter
              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                27 janvier 2020 à 10:06:59

                Ok et ducoup comment je peux modifier les formats de date de sql server pour mettre la française ?

                -
                Edité par YaourtSaveurFraise 27 janvier 2020 à 10:43:52

                • Partager sur Facebook
                • Partager sur Twitter
                  27 janvier 2020 à 10:24:01

                  SELECT FORMAT ( colonneDate, 'dd/MM/yyyy' ) AS date_formatee
                  FROM maTable
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                    27 janvier 2020 à 10:46:49

                    Benzouye a écrit:

                    SELECT FORMAT ( colonneDate, 'dd/MM/yyyy' ) AS date_formatee
                    FROM maTable


                    Je me suis mal exprimé. je connais la fonction format.

                    Se que je voudrais c'est que dans la base se soit stocké sous la forme dd/mm/yyyy 

                    donc que en faisant juste un select j'ai la date de la bonne façons.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 janvier 2020 à 11:10:31

                      YaourtSaveurFraise a écrit:

                      je voudrais que dans la base se soit stocké sous la forme dd/mm/yyyy

                      Tu ne m'as pas lu ?

                      Benzouye a écrit:

                      En base de données, une date est une date, elle n'a pas de format ... le format est une conception "humaine", une façon de représenter...

                      Ce que tu demandes n'a pas de sens pour SQL Server ... Il stocke une date, pas un format ...

                      En revanche, le format de sortie par défaut est yyyy-mm-dd hh:mm:ss ... je ne sais pas si l'on peut modifier cela, mais si oui, ce serait très risqué ...

                      https://blogs.msdn.microsoft.com/sqlserverfaq/2009/11/13/how-to-change-date-format-after-installing-sql-server/

                      Dans tous les cas, c'est ton DatePicker qui doit gérer cela en ayant un format d'affichage et un format d'échange avec la BDD ...



                      -
                      Edité par Benzouye 27 janvier 2020 à 11:13:11

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                        27 janvier 2020 à 11:56:49

                        ah ok merci j'avais mal lus.

                        Pour formater les date j'ai fait un 

                        SET DATEFORMAT dmy;
                        DBCC USEROPTIONS;

                        Le DBCC m'affichait que la date qui va s'afficher sera en dmy c'est a dire dd/mm/yy.

                        pourtant quand je fait un 

                        Select GetDate()

                        j'obtiens toujours cette date 2020-01-27 

                        alors que normalement je suis censé avoir  27/01/2020

                        • Partager sur Facebook
                        • Partager sur Twitter
                          27 janvier 2020 à 12:18:18

                          Je ne connais pas assez SQL Server pour t'aider, toujours est-il que je te déconseille de faire cela (compatibilité, évolutivité) et t'engage à plutôt travailler côté Access sur ton DatePicker ...

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                            27 janvier 2020 à 12:40:19

                            Benzouye a écrit:

                            Je ne connais pas assez SQL Server pour t'aider, toujours est-il que je te déconseille de faire cela (compatibilité, évolutivité) et t'engage à plutôt travailler côté Access sur ton DatePicker ...


                            le problème étant que même avec un DatePicker j'ai toujours un problème.

                            En mettant en format de date aaaa-mm-jj sur ma date picker j'ai toujours un message d'erreur qu'est celui  la :

                            odbc dépassement de capacité des données.

                            je pense que le changement est juste visuel.

                            • Partager sur Facebook
                            • Partager sur Twitter
                              27 janvier 2020 à 13:24:52

                              Le problème est lors de la requête (UPDATE, INSERT INTO) ?

                              Si oui, quelle requête exécutes-tu ?

                              • Partager sur Facebook
                              • Partager sur Twitter
                              Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                                27 janvier 2020 à 15:19:14

                                bah le truc c'est que je fais tout via formulaire access. Donc je n'ai aucune idée de à qu'elle moment ça ne marche pas
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  27 janvier 2020 à 15:38:34

                                  Je te conseille de rechercher sur internet avec le code d'erreur exact et les mots Access / SQL Server.

                                  Je suis persuadé que tu vas trouver quelque chose !

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
                                    27 janvier 2020 à 16:37:47

                                    Benzouye a écrit:

                                    Je te conseille de rechercher sur internet avec le code d'erreur exact et les mots Access / SQL Server.

                                    Je suis persuadé que tu vas trouver quelque chose !


                                    Bah je n'avance pas plus car en rentrant avec le date picker j'obtiens une date en jj/mm/aaaa et quand je change de textbox sa les passe en yyyy-mm-dd

                                    donc le access prend en compte que la valeurs prise par le datepicker et pas celle qui est modifié quand je change de texte box.

                                    Et après plusieurs test access ne prend pas en compte la valeurs formater mais uniquement la première valeurs incrite dans la text box

                                    Sur  la doc on précise que cette erreur peut arriver si la valeurs que l'on rentre n'est pas dans un certain intervalle. Ce qui  est le cas quand la date est au mauvais format. 

                                    https://docs.microsoft.com/fr-fr/office/vba/access/concepts/miscellaneous/odbcdata-out-of-rangeerror-3238?f1url=https%3A%2F%2Fmsdn.microsoft.com%2Fquery%2Fdev11.query%3FappId%3DDev11IDEF1%26l%3Dfr-FR%26k%3Dk(jeterr40.chm5003238)%3Bk(TargetFrameworkMoniker-Office.Version%3Dv16)%26rd%3Dtrue

                                    -
                                    Edité par YaourtSaveurFraise 27 janvier 2020 à 16:46:42

                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Formater une date avant l'insertion depuis access

                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                    • Editeur
                                    • Markdown