MsFlexGrid et Indice hors limites '381' [Résolu]

Sinsitrus 863 Messages postés samedi 11 juin 2005Date d'inscription 21 août 2015 Dernière intervention - 6 oct. 2012 à 00:53 - Dernière réponse : Sinsitrus 863 Messages postés samedi 11 juin 2005Date d'inscription 21 août 2015 Dernière intervention
- 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
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
LIBRE_MAX 1403 Messages postés mardi 1 mai 2007Date d'inscription 7 octobre 2012 Dernière intervention - 7 oct. 2012 à 01:59
3
Merci
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.

Merci LIBRE_MAX 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de LIBRE_MAX
NHenry 14274 Messages postés vendredi 14 mars 2003Date d'inscription 18 octobre 2018 Dernière intervention - 6 oct. 2012 à 01:46
0
Merci
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
---
Commenter la réponse de NHenry
Sinsitrus 863 Messages postés samedi 11 juin 2005Date d'inscription 21 août 2015 Dernière intervention - 6 oct. 2012 à 10:47
0
Merci
Ma table contient 10.000 lignes
La ligne d'erreur est :
Tableau.TextMatrix(I, 0) = Rs!NumId
Merci NHenry
Commenter la réponse de Sinsitrus
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 6 oct. 2012 à 10:57
0
Merci
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
Commenter la réponse de ucfoutu
Sinsitrus 863 Messages postés samedi 11 juin 2005Date d'inscription 21 août 2015 Dernière intervention - 7 oct. 2012 à 00:29
0
Merci
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
Commenter la réponse de Sinsitrus
LIBRE_MAX 1403 Messages postés mardi 1 mai 2007Date d'inscription 7 octobre 2012 Dernière intervention - 7 oct. 2012 à 01:04
0
Merci
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.
Commenter la réponse de LIBRE_MAX
Sinsitrus 863 Messages postés samedi 11 juin 2005Date d'inscription 21 août 2015 Dernière intervention - 7 oct. 2012 à 01:18
0
Merci
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
Commenter la réponse de Sinsitrus
Sinsitrus 863 Messages postés samedi 11 juin 2005Date d'inscription 21 août 2015 Dernière intervention - 7 oct. 2012 à 01:29
0
Merci
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
Commenter la réponse de Sinsitrus
LIBRE_MAX 1403 Messages postés mardi 1 mai 2007Date d'inscription 7 octobre 2012 Dernière intervention - 7 oct. 2012 à 01:42
0
Merci
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.
Commenter la réponse de LIBRE_MAX
Sinsitrus 863 Messages postés samedi 11 juin 2005Date d'inscription 21 août 2015 Dernière intervention - 7 oct. 2012 à 02:03
0
Merci
Hi hi merci ça fonctionne ^^

Impécable :p
Commenter la réponse de Sinsitrus

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.