none
Base Access à dataset : type de données non respecté RRS feed

  • Discussion générale

  • Bonjour,

    Je n'arrive pas à expliquer ce souci : j'ai une bdd access avec une colonne de date, lorsque je charge un dataset le format de données dans cette colonne passe de Date à Double.

    J'ai vérifié dans Access avec la requête qui charge le dataset et la fonction typename : mes données sont bien de type date

    Mais une fois chargé dans le dataset, celui-ci les convertit en type Double.

    J'ai essayé de convertir avec Cast, Cdate et FormatDateTime mais le système m'indique que la conversion ne peut se faire.

    Une idée ?

    Le code de chargement de mon dataset :

    Public Sub RecherchePret()
    
            Dim requete As String = "Select * FROM archivage LEFT JOIN pret ON archivage.Num = pret.Num_Archives where pret.ID = " & Modif_pret.Txt_pret.Text & ""
    
            Try
    
                If ConnexionAccess.State = ConnectionState.Closed Then
                    ConnexionAccess.Open()
                End If
    
                Commande = New OleDbCommand(requete, ConnexionAccess)
                DataSetAdaptateur = New OleDbDataAdapter(Commande)
    
                Try
                    DataSetArchives.Clear()
                    DataSetAdaptateur.Fill(DataSetArchives, "Archivage")
                    Resultats.DGV_Resultats.DataSource = DataSetArchives.Tables("Archivage")
                    Resultats.Show()
    
                Catch ex As Exception
                    MessageBox.Show(ex.Message)
                End Try
    
            Catch ex As Exception
                MessageBox.Show(ex.Message)
    
            End Try
    
            ConnexionAccess.Close()

    mardi 20 juin 2017 09:42

Toutes les réponses

  • Bonjour rocketter,
    Je suppose que vous insérer les données dans un DataGridView. Vous pouvez changer le format de cette colonne particulière dans la DataGridView. DataGridViewColumn a la propriété DefaultCellStyle où vous pouvez définir le format "Date Time":

    Ou vous pouvez changer le format par code: Standard Date and Time Format Strings

    Cordialement,
    Nina

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.


    mercredi 21 juin 2017 09:08
    Modérateur
  • Bonjour,

    Merci de votre réponse, oui je ne l'ai pas mentionné mais effectivement je remplis un datagridview, mais par code, je ne peux donc pas intervenir dans le format des colonnes en mode graphique.

    Via le code j'ai essayé ceci :

    Resultats.DGV_Resultats.Columns(17).DefaultCellStyle.Format = ("d", DateTimeFormatInfo.InvariantInfo)

    Mais cela ne fonctionne pas.

    Alors j'ai tenté ceci :

    Resultats.DGV_Resultats.Columns(17).DefaultCellStyle.Format = "dd/MM/yyyy"

    Mais l'erreur est toujours là.

    VB m'indique un format de type double et non date, alors que c'est bien une date qui apparait dans le datagridview

    mercredi 21 juin 2017 12:43
  • Ok au temps pour moi, j'avais caché une colonne mais je n'en ai pas tenu compte dans la suite du code, ce qui fait que mon code chopait un ID plutôt qu'une date, d'où l'erreur. Merci quand même des réponses apportées
    mardi 27 juin 2017 07:26