MsFlexGrid et Indice hors limites '381'

Résolu
Sinsitrus
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015
- 6 oct. 2012 à 00:53
Sinsitrus
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015
- 7 oct. 2012 à 02:03
Salut à tous !

Indice hors limites '381'

Voilà, ce code :
Dim I As Integer
I = 0
If Not (Rs.BOF And Rs.EOF) Then
Rs.MoveFirst
Tableau.Rows = Rs.RecordCount + 1
I = 1
Do While Not Rs.EOF
Tableau.TextMatrix(I, 0) = Rs!NumId
Tableau.TextMatrix(I, 1) = Rs!Validite
I = I + 1
Rs.MoveNext
Loop
End If
m'affiche cette erreur... je ne comprends pas pourquoi :s

Avez-vous une idée svp ?

Merci

----------
OS : Windows 7 Pro 64 Bit
Platforme : VB6
A voir également:

10 réponses

LIBRE_MAX
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
7 oct. 2012 à 01:59
Essaies ceci;

Dim I As Integer
On Erreur GoTo err_

With Tableau
If Not (Rs.BOF And Rs.EOF) Then
   Rs.MoveFirst
  .FixedRows =1
  .Rows =2
  .FixedCols =1
  .Cols =4  
   Do While Not Rs.EOF
     I=.Rows-1
    .TextMatrix(I, 0) = Rs!NumId
    .TextMatrix(I, 1) = Rs!Codes
    .TextMatrix(I, 2) = Rs!Validite
    .TextMatrix(I, 3) = Rs!CodeClient

    .Rows =.Rows+1
     Rs.MoveNext
   Loop
End If
End With
Exit Sub
err_:
MsgBox Err.Descriptio




[] Ce qui va sans dire. va mieux en le disant.
3
NHenry
Messages postés
14929
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
22 mai 2022
162
6 oct. 2012 à 01:46
Bonjour,

Sur quelle ligne, et quelles sont les valeurs de la ligne ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
0
Sinsitrus
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

6 oct. 2012 à 10:47
Ma table contient 10.000 lignes
La ligne d'erreur est :
Tableau.TextMatrix(I, 0) = Rs!NumId
Merci NHenry
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
236
6 oct. 2012 à 10:57
Bonjour,
Sur quelle ligne, et quelles sont les valeurs de la ligne ?

tu n'as pas répondu à la partie soulignée !
Pour connaître ces valeurs : rentre en mode debug.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sinsitrus
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

7 oct. 2012 à 00:29
J'ai fais le débogage, il souligne la ligne que je t'ai donné, me met dessus :
Tableau.TextMatrix(I, 0) = 


Soit je n'ai pas compris le mode debug soit... je en sais pas le faire :s
0
LIBRE_MAX
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
7 oct. 2012 à 01:04
Bonsoir,

En fait, le but est de savoir quelle valeur de i provoque l' erreur.
Quand l' erreur survient et que la ligne est soulignée, en mettant
le pointeur de la souris sur la variable i, sa valeur est indiquée dans
une tooltiptext.

Autre solution, mettre en place une gestion d' erreur.
Dim I As Integer
I = 0
If Not (Rs.BOF And Rs.EOF) Then
Rs.MoveFirst
Tableau.Rows = Rs.RecordCount + 1

On erreur GoTo err_indice 
I = 1
Do While Not Rs.EOF
Tableau.TextMatrix(I, 0) = Rs!NumId
Tableau.TextMatrix(I, 1) = Rs!Validite
I = I + 1
Rs.MoveNext
Loop
End If

Exit Sub
err_indice:
MsgBox Err.Description & " / " & i 




[] Ce qui va sans dire. va mieux en le disant.
0
Sinsitrus
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

7 oct. 2012 à 01:18
C'est bizarre. Quand je fais ça, il me donne la première ligne de la table et sans le reste des données :
Dim I As Integer
I = 0
If Not (Rs.BOF And Rs.EOF) Then
Rs.MoveFirst
On Error Resume Next
'Tableau.Rows = Rs.RecordCount + 1
I = 1
Do While Not Rs.EOF

Tableau.TextMatrix(I, 0) = Rs!NumId
Tableau.TextMatrix(I, 1) = Rs!Codes
Tableau.TextMatrix(I, 2) = Rs!Validite
Tableau.TextMatrix(I, 3) = Rs!CodeClient

I = I + 1
Rs.MoveNext
Loop
End If

On Error Resume Next
'Tableau.Rows = Rs.RecordCount + 1

Si je retire le On Error Resume Next, là il me renvois le même message mais sur :
Tableau.TextMatrix(I, 3) = Rs!CodeClient
0
Sinsitrus
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

7 oct. 2012 à 01:29
C'est bien le texte du tootltiptext que j'avais envoyé plus haut :
Tableau.TextMatrix(I, 0) =

Et lorsque je viens sur le I,0 il affiche I=1
Tout les I sont égales à 1

Avec ton code, il me fait pareil... il m'envoie en mode debug directement en s'en foutant du message err_indice
0
LIBRE_MAX
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
7 oct. 2012 à 01:42
et donc il s'agit de l' indice de colonne.
T' as combien de colonnes dans ton tableau ?

D' après ton code, il doit en avoir 4.
tableau.FixedCols=1
tableau.Cols=4

Vérifies aussi pour la ligne fixe:
tableau.FixedRows=1


PS:Pour gerer l' erreur on n' utilise pas le On Erreur Resume Next.Mais une etiquette.
[] Ce qui va sans dire. va mieux en le disant.
0
Sinsitrus
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

7 oct. 2012 à 02:03
Hi hi merci ça fonctionne ^^

Impécable :p
0