IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Problème format date et heure sur base Access liée


Sujet :

Access

  1. #1
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2015
    Messages : 51
    Points : 47
    Points
    47
    Par défaut Problème format date et heure sur base Access liée
    Bonjour,

    Je fait une synthése du post que j'ai créer sur le forum SQL-Server.

    On n'a pas pu m'aider. Comme c'est un problème entre SQL-Server et Access, on m'a conseiller d'exposer mon problème aussi ici.


    J'ai développé une base de données sous Access que j'ai ensuite migré sous sous SQL server 2017 sur notre serveur à l'aide du logiciel "SQL Server Migration Assistant for Access".

    Tout c'est bien passé sauf mes format "date/heure" et qui c'est transformé en "datetime2".

    Je lis et écrit dans cette base avec une base Access que j'ai lié à la base SQL Server (mes formulaires et requêtes étant déjà fait sous Access). Pas de problème.

    Le problème, c'est qu'à priori, quand je lie Access à une base SQL, je ne peux pas modifier mes formats d'affichage sur Access, ni sur l'affichage des tables ni sur les formulaires.

    Quand je regarde le format par défaut des heures sur les tables depuis Access c'est Texte court...

    Quand je veux le modifier (quelque soit le format) j'ai le message d'erreur :"Opération non autorisée pour ce type d'action". Voir capture ci-après.

    Nom : Capture.PNG
Affichages : 2094
Taille : 19,6 Ko

    Donc quand je veux lire les dates ou les heures depuis Access, les formats se présente sous la forme:
    2019-07-21 00:00:00 pour les date
    1970-01-01 02:45:00 (avec toujours cette date par défaut) pour les heures.

    C'est pas top pour la lecture

    En modifiant le type datetime2 en date et time sur la base SQL Server, j'obtiens les affichage suivant sur Access:
    2019-07-21 pour les dates
    02:45:00.0000000 pour les heures.

    Pour la lecture, c'est un peu mieux pour les dates mais pas pour les heures.

    J'aimerai avoir un affichage classique à la Française, soit:
    21-07-2019 ou 21/07/2019 pour les dates
    02:45:00 pour les heures

    Quelqu'un a-t-il déjà été confronté à ce problème? ou a une idée?

    Environement:
    Windows 10 Professionnel
    Office 365
    Access 2016 Mise à jour du 30/11/19
    SQL-Server 2017

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 085
    Points : 5 200
    Points
    5 200
    Par défaut
    Bonjour,

    J'ai aussi des données sur des tables SQL server et ne comprends pas bien ton problème

    Citation Envoyé par CeluiQuiCherche Voir le message
    Le problème, c'est qu'à priori, quand je lie Access à une base SQL, je ne peux pas modifier mes formats d'affichage sur Access, ni sur l'affichage des tables ni sur les formulaires.
    Une table a un format de stockage (datetime2...) mais pas de format d'affichage

    D'une manière générale on ne peut rien changer dans la frontale sur les tables liées, qu'elles soient sous access, SQL server ou autre. On peut juste manipuler les données qu'elles contiennent.

    Par contre, un formulaire a un format d'affichage qu'il essaie d'appliquer quelque soit la donnée qu'il reçoit et quelle qu'en soit l'origine : date dans l'ordre qu'on veut, affichage des heures ou non...
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2015
    Messages : 51
    Points : 47
    Points
    47
    Par défaut
    Merci de prendre mon problème en considération et désolé pour le manque de réactivité mais je fait plein de trucs en même temps.

    Le problème c'est que je ne peux pas modifier le format d'affichage sur les formulaires quand je travaille sur une base liée.

    Ci-après une illustration de mon problème:

    - en premier ma base d'origine on voit que le menu déroulant de format est plein

    - en second la même base exportée sous SQL Server et liée depuis Access on voit que le menu déroulant de format est vide. Même si je mais une terme du 1er menu déroulant ça ne fait rien.


    Menu en mode création du format d'affichage d'un champ date d'un formulaire sur une base Access NON liée

    Nom : Menu plein.PNG
Affichages : 1712
Taille : 30,3 Ko

    Resultat

    Nom : Affichage ok.PNG
Affichages : 1684
Taille : 10,4 Ko

    Menu en mode création du format d'affichage d'un champ date d'un formulaire sur une base Access LIÉE

    Nom : Menu vide.PNG
Affichages : 1689
Taille : 34,5 Ko

    Résultat

    Nom : Affichage pas ok.PNG
Affichages : 1690
Taille : 10,2 Ko

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    bonjour,
    le problème est là:
    Quand je regarde le format par défaut des heures sur les tables depuis Access c'est Texte court...
    tant que les champs dates seront de type Texte, la tentative de changement de format sera impossible: on ne peut pas affecter un format date à champ de type Texte.
    La question est de savoir si c'est l'attache des tables qui transforme les dates en texte (comme cela arrive parfois lorsque le type de champ de la base externe n'est pas reconnu) ou si elles sont en texte à l'origine... dans ce cas une conversion de données et un changement de type s'imposent.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2015
    Messages : 51
    Points : 47
    Points
    47
    Par défaut
    La question est de savoir si c'est l'attache des tables qui transforme les dates en texte (comme cela arrive parfois lorsque le type de champ de la base externe n'est pas reconnu) ou si elles sont en texte à l'origine...
    Les date ne sont pas en texte sur SQL Server mais en datetime2 ou en date et time suivant les tests que j'ai fait


    dans ce cas une conversion de données et un changement de type s'imposent.
    J'ai modifier le type sur SQL Server, ça m'a amélioré l'affichage mais j'ai toujours "Texte court" sur les tables et toujours rien dans le menu déroulant du format de champ du formulaire...

    En modifiant le type datetime2 en date et time sur la base SQL Server, j'obtiens les affichage suivant sur Access:
    2019-07-21 pour les dates
    02:45:00.0000000 pour les heures.

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 621
    Points : 14 577
    Points
    14 577
    Par défaut
    ce n'est pas le format qui importe, c'est le contenu: tant que le champ n'est pas reconnu en tant que date, il n'y aura pas de solution.

    Il faut garder à l'esprit qu'une date dans une table Access est stockée sous une forme numérique (Réel Double) et c'est le format qui la rend compréhensible à l'humain... il est possible que sur SQL Server ce ne soit pas le cas, raison pour laquelle les séparateurs transforment le champ en texte ou également une valeur trop grande (l'heure peut contenir plus de décimales sur SQL Server: datetime2, par exemple, a une précision de 100 nanosecondes et dans ce cas n'est pas convertible en type date/heure Access).
    Même si ce sont 2 produits Microsoft ils obéissent à des normes différentes ...

    La solution est peut-être la conversion en smalldatetime dans SQL Server ?
    A tester
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  7. #7
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2015
    Messages : 51
    Points : 47
    Points
    47
    Par défaut
    Nickel!!!! ça marche

    En fait sur SQL Server, il y a un format auquel je n'avais pas fait attention Datetime tout simplement (sans le 2) et c'est celui-là qu'il faut selectionner.

    Merci tee_grandbois c'est
    La solution est peut-être la conversion en smalldatetime dans SQL Server ?
    qui m'a mis sur la voie.

  8. #8
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 085
    Points : 5 200
    Points
    5 200
    Par défaut
    Ah je viens de regarder et c'est datetime que j'utilise aussi, sans souci à ce jour
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Problème syntaxe select from where sur base access
    Par IL-MAFIOSO dans le forum VB.NET
    Réponses: 2
    Dernier message: 19/06/2012, 18h27
  2. problème avec SUM(Distinct champ_x) sur base access
    Par walid_kerkoub dans le forum Bases de données
    Réponses: 2
    Dernier message: 29/09/2009, 17h14
  3. envoyer des factures au format pdf sur base access
    Par david.parmentier dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/02/2008, 22h04
  4. Prolèmes de format de date pour attaquer une base access
    Par Aboubacry dans le forum Accès aux données
    Réponses: 2
    Dernier message: 29/05/2007, 10h55
  5. Réponses: 1
    Dernier message: 04/04/2006, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo