capitainecav
Messages postés17Date d'inscriptionlundi 7 janvier 2008StatutMembreDernière intervention 7 avril 2008
-
31 mars 2008 à 16:23
capitainecav
Messages postés17Date d'inscriptionlundi 7 janvier 2008StatutMembreDernière intervention 7 avril 2008
-
7 avril 2008 à 17:17
Bonjour à tous,
J'ai un message d'erreur que je ne comprend pas :
L'argument spécifié n'était pas dans les limites de la plage des valeurs valides. Nom du paramètre : index
Sur les tables ID et REALISATEUR, cela marche. Original = Oui/Non dans la base access.
While Not (recordset.EOF)
If strTable = "T_DVD" Then
Dim LV_item As New System.Windows.Forms.ListViewItem ' Pour affichage du résultat
strSQL = "SELECT * FROM " & strTable & " ORDER BY ID "
'Remplissage de la Liste View
LV_item = LV_resultat.Items.Add(CStr(recordset.Fields("ID").Value))
LV_item.SubItems.Insert(1, New System.Windows.Forms.ListViewItem.ListViewSubItem(Nothing, CStr(recordset.Fields("TITRE").Value)))
If Not IsDBNull(recordset.Fields("REALISATEUR").Value) Then
LV_item.SubItems.Insert(2, New System.Windows.Forms.ListViewItem.ListViewSubItem(Nothing, CStr(recordset.Fields("REALISATEUR").Value)))
End If
If Not IsDBNull(recordset.Fields("ORIGINAL").Value) Then
LV_item.SubItems.Insert(3, New System.Windows.Forms.ListViewItem.ListViewSubItem(Nothing, CStr(recordset.Fields("ORIGINAL").Value)))
End If
' On passe à l'enregistrement suivant
recordset.MoveNext()
Else : strTable = "T_DVD_JEUX"
'Remplissage de la Liste View
' On passe à l'enregistrement suivant
recordset.MoveNext()
End If
End While
Peut-on mettre des cases à cocher sur toute une colonne non-modifiable pour ces valeurs booléennes ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 1 avril 2008 à 01:29
Salut
Il a peut-être du mal à convertir un Booleen en String.
Essaye de passer par un CStr(CBool(x))
ou d'utiliser un If pour insérer le texte Oui ou Non selon que .Valeur = True ou False
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 4 avril 2008 à 13:05
Re
Dans ta ListView, as-tu bien défini 4 colonnes (en mode Report) : La colonne principale + 3 SubItems ?
Parce que là, tu essayes d'écrire dans la 4ème colonne (avec l'index SubItem 3)
S'il te parle de problème d'index, ça me fait penser à ça
Est-ce que c'est sur la première donnée qu'il écrit que tu as cette erreur ou bien en plein milieu du traitement ?
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 6 avril 2008 à 04:50
Mode Report en VB6
C'est List ou Detail en VB.Net
Ca t'apprendra à poster ta question dans la mauvaise catégorie (catégorie passée de VB6 à .Net)
Tu viens de perdre un jour au lieu de prendre 30 secondes pour bien choisir la catégorie de la question.
Pour ton problème :
-1- je vois que la ligne où tu fais la même action avec le SubItem 2 ne semble pas poser de problème.
J'en déduit donc que c'est dans l'utilisation du SubItem 3 qu'il y a problème.
Au moment où l'erreur se produit, essaye d'afficher le nombre (Count) de SubItems de ta ListView et vérifie.
-2- Es-tu sûr que la méthode LV_item.SubItems.Insert soit la bonne ?
Sans avoir regardé dans l'aide, je verrais plutôt cette instruction comme une méthode d'ajout d'une colonne, pas comme une instruction de remplissage d'un SubItem existant.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
capitainecav
Messages postés17Date d'inscriptionlundi 7 janvier 2008StatutMembreDernière intervention 7 avril 2008 7 avril 2008 à 17:17
Bonjour,
Excusez-moi pour la mauvaise catégorie du sujet.
Je viens de trouver le problème. En fait j'ai des enregistrements ne comportant pas de réalisateur et c'est cela que VB perturbe.
J'ai donc fait un test sur le réalisateur. Et cela marche en utilisant insert.