Erreur de champ de table

Signaler
Messages postés
453
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
11 janvier 2013
-
Messages postés
453
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
11 janvier 2013
-
bonjour,
Je vais vers vous car je sèche,voici mon problème
les noms des champ d'une table son des chiffres ex 1,2,3,4,5,6
je ne peux pas les modifiés car c'est un automat qui me génère les tables.

j'ai essayer de faire :
 Dim cmd As New OleDb.OleDbCommand
        Dim rd As OleDb.OleDbDataReader
        Dim obj As ListViewItem
        cmd.Connection = cnx
        cmd.CommandType = CommandType.Text
        cmd.CommandText = "SELECT * FROM En_cours"
        cnx.Open()
        rd = cmd.ExecuteReader
        While rd.Read
            obj = New ListViewItem
            If Not IsDBNull(rd.Item("Date")) Then
                obj.Text = rd.Item("Date")
            Else

            End If
            If Not IsDBNull(rd.Item("Time")) Then
                obj.SubItems.Add(rd.Item("Time"))
            Else
                obj.SubItems.Add("")
            End If
            If Not IsDBNull(rd.Item("['1']")) Then
                obj.SubItems.Add(rd.Item("['1']")) 
            Else
                obj.SubItems.Add("")
            End If
            frmPrincipale.lsvListMesure.Items.Add(obj.Clone)
            obj = Nothing


        End While
        rd.Close()
        rd = Nothing
        cmd = Nothing


j'ai essaye plusieurs chose ['1'],('1'),1,'1' etc...
Impossible de continué il plante auriez vous une solution svp sans renommer les en tete de colonne
Merci par avance
Cordialement

5 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
Apparemment, tu n'as pas essayé la bonne !
Essaye simplement [1], mais il est possible que les noms de champs doivent obligatoirement contenir une lettre ...
Au pire, adresse-toi au champ par son numéro d'ordre et pas par son nom :
En supposant que le champ nommé "1" soit le 10ème paramètre, essaye ceci :
rd.Item(9)
9 car il me semble que les champs sont numérotées à partir de 0 et pas 1 (à confirmer, sinon, tu mets 10 à la place)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
453
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
11 janvier 2013
10
merci de ta réponse j'ai essayer les 2 rien a faire donc je te recap.
Je n'est pas evoqué plus haut la bdd et un fichier DBF que j'exploite avec vfpoledb j'ai 22 colonnes utilisé.
Pour les 3 première colonnes les champs sont Date Time et eval le tout en texte donc pas de problème les autres sont des chiffres 1,2,3,4 etc
j'ai essayer
rd.Item(3)
sa fonctionne très bien et lorsque je met rd.Item(4) il me dit:
L'index se trouve en dehors des limites du tableau.

franchement je comprend pas
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Que donne rd.Item.Count ?
Je pense que ça existe (connais pas)

rd.Item(3)
te renvoie la valeur de :
- la troisième colonne ? -> numérotation à partir de 1
- la quatrième colonne ? -> numérotation à partir de 0
- la colonne intitulée "4" ? -> Mauvaise interprétation : il confond le champ d'index 4 avec le champ appelé 4 -> il faut trouver une autre syntaxe -> replonge toi dans l'aide
Messages postés
453
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
11 janvier 2013
10
oui - la quatrième colonne -> numérotation à partir de 0
je cherche toujours
merci
Messages postés
453
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
11 janvier 2013
10
j'ai régler le problème avec ActiveX object Data.
Merci pour ton aide