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

VB.NET Discussion :

"DefaultCellStyle.Format" dans un DataGrid


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut "DefaultCellStyle.Format" dans un DataGrid
    Bonjour,
    Petit probleme de format en VB.Net
    Dans mon DataGridView, lié à une base de données Access, la colonnes Dates s'affiche "dd/mm/yyyy hh.mm.ss". Cependant le format de cette colonne dans la dB Access est "dd-mmm-yy". Je souhaiterais avoir le même format dans le DataGridView pour faire un tri sur la colonne Dates

    Dans le code ci-dessous, la ligne de mise au format de la colonne Dates me renvoi toujours l'erreur <La référence d'objet n'est pas définie à une instance d'un objet>

    Par contre la ligne suivante de tri s'effectue bien (mais sur un format texte qui ne convient pas).

    Imports System
    Imports System.ComponentModel
    Imports System.Windows.Forms.DataGridViewCellStyle
    Imports System.Windows.Forms
    Public Class FrmHistoric
    Public Sub FrmHistoric_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    TblScoresTableAdapter.Fill(StatDataSet.tblScores)

    'format de la colonne Dates
    TblScoresDataGridView.Columns("Dates").DefaultCellStyle.Format = "dd/mmm/yy"

    ' tri du dataGridView sur la colonne(8)
    TblScoresDataGridView.Sort(TblScoresDataGridView.Columns(8), ListSortDirection.Ascending)

    End Sub
    End Class

    Toutes suggestions sont les bien venues pour résoudre cette difficulté. Merci
    Gigi

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Points : 270
    Points
    270
    Par défaut
    Salut,

    Pourrais-tu utiliser les balises

    Essais en mettant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Imports System
    Imports System.ComponentModel
    Imports System.Windows.Forms.DataGridViewCellStyle
    Imports System.Windows.Forms
    Public Class FrmHistoric
    Public Sub FrmHistoric_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
    TblScoresTableAdapter.Fill(StatDataSet.tblScores)
     
    'format de la colonne Dates
    TblScoresDataGridView.Columns("Dates").DefaultCellStyle.Format = "d"
     
    ' tri du dataGridView sur la colonne(8)
    TblScoresDataGridView.Sort(TblScoresDataGridView.Columns(8), ListSortDirection.Ascending)
     
    End Sub
    End Class
    Dans l'aide regarde le lien suivant
    http://msdn2.microsoft.com/fr-fr/lib...8f(VS.80).aspx

    Pour finir, lorsque tu ne sais pas quoi mettre en paramètre, comme pour TblScoresDataGridView.Columns("Dates").DefaultCellStyle.Format:
    - Créer un datagridview
    - Créer une colonne
    - Dans les paramètres Apparence/DefautCellStyle
    - Dans les paramètres Comportement/Format
    - Sélectionnes ton format, valide
    -> Tu verras sur la ligne Comportement/Format la lettre à placer dans ton code

    Autrement, pourquoi fais-tu le trie au chargement de ton formulaire?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub FrmHistoric_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ' tri du dataGridView sur la colonne(8)
    TblScoresDataGridView.Sort(TblScoresDataGridView.Columns(8), ListSortDirection.Ascending)
    Tu pourrais le faire dans ton dataset StatDataSet.tblScores

    Gdal

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut DefaultCellStyle.Format
    Merci Gdal pour ta réponse.
    cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TblScoresDataGridView.Columns("Dates").DefaultCellStyle.Format = "d"
    produit toujours la même erreur: La référence d'objet n'est pas définie à une instance d'un objet

    J'avais déjà essayé d'utiliser les paramètres Apparence/DefaultCellStyle - Comportement/Format de la colonne mais sans résultat. Quel que soit le format introduit, il n'y a pas de changement à la compilation.

    C'est pour cette raison que j'essaye de modifier le format via le code.
    Bref, je patauge toujours.
    jlgigi

  4. #4
    Membre actif

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Points : 270
    Points
    270
    Par défaut
    re,

    Modifie le nom de ta colonne "Dates". C'est le genre de nom à éviter comme String, Numérique,... L'erreur ne vient peut-être pas d'ici, mais ça t'en évitera d'autres.
    Ou essais en indiquant l'index de la colonne.

    Gdal

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut DefaultCellStyle.Format" dans un DataGrid
    Bingo !
    Merci Gdal. ça fonctionne correctement en ayant changé le nom de la colonne par son index. Comme quoi on peut buter des heures sur une pécadille...,
    jlgigi

  6. #6
    Membre actif

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Points : 270
    Points
    270
    Par défaut
    re,

    Citation Envoyé par jlgigi Voir le message
    Bingo !
    Merci Gdal. ça fonctionne correctement en ayant changé le nom de la colonne par son index. Comme quoi on peut buter des heures sur une pécadille...,
    jlgigi
    Ce qui me conforte lorsque je te propose:
    Modifie le nom de ta colonne "Dates". C'est le genre de nom à éviter comme String, Numérique,... L'erreur ne vient peut-être pas d'ici, mais ça t'en évitera d'autres.
    Ou alors l'orthographe du nom de la colonne n'est pas correcte.

    Bonne continuation

    Gdal

    Pense à la balise

  7. #7
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Septembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 15
    Points : 19
    Points
    19
    Par défaut Formatage de colonnes dans une datagridview
    Bonjour à tous,

    J'ai bien lu vos exemples mais malgré tous je ne parviens pas à formater les colonnes de datagridview avec des dates.

    J'ai vérifié que les données présentes dans ma base SQL intègre bien les heures et les minutes. J’ai vérifié le résultat de ma requête de chargement de mon datagridview.

    Impossible d'afficher les heures et les minutes dans ma colonne.

    Je vous présente la partie de mon code.
    Si vous aviez une super solution ou des idées.
    Merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Imports System.ComponentModel
    Imports System.Windows.Forms.DataGridViewCellStyle
    Imports System.Windows.Forms
     
    ...................
     
     'Création de la colonne Date de production (2) dans le datagridview
        NewCol = New DataGridViewTextBoxColumn
        With NewCol
           .HeaderText = "Sortie de production"
           .DataPropertyName = "PAMV_DateMouv"
           .Name = .DataPropertyName
           .Width = 90
           .DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
        End With
        DgvListePalette.Columns.Add(NewCol)
        DgvListePalette.Columns(2).DefaultCellStyle.Format = "M/d/yyyy H:mm"

  8. #8
    Membre actif

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Points : 270
    Points
    270
    Par défaut
    Salut,

    As-tu lu et essayé ceci:
    Pour finir, lorsque tu ne sais pas quoi mettre en paramètre, comme pour TblScoresDataGridView.Columns("Dates").DefaultCellStyle.Format:
    - Créer un datagridview
    - Créer une colonne
    - Dans les paramètres Apparence/DefautCellStyle
    - Dans les paramètres Comportement/Format
    - Sélectionnes ton format, valide
    -> Tu verras sur la ligne Comportement/Format la lettre à placer dans ton code
    Je viens de le faire et pour M/d/yyyy H:mm il faudrait plutôt mettre g

    Ouvre un nouveau post plutôt que d'en reprendre un qui est

    Gdal

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

Discussions similaires

  1. problème format date dans un datagrid
    Par bebert119 dans le forum ASP.NET
    Réponses: 11
    Dernier message: 14/08/2007, 16h38
  2. Réponses: 7
    Dernier message: 31/10/2006, 01h36
  3. [VB6]Format de nombres dans un DataGrid
    Par badrel dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 27/04/2006, 14h53

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