bonjourcheval
Messages postés228Date d'inscriptionmercredi 13 décembre 2000StatutMembreDernière intervention 8 août 2011
-
30 juil. 2008 à 15:44
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 2012
-
30 juil. 2008 à 22:22
Bonjour(pas cheval),
Dans un rapport que je fais avec DataDynamic Active Report 2.0, j'ai eu un petit bug :
Private Sub ActiveReport_fetchData(eof As Boolean)
If dcInters.Recordset.eof Then Exit Sub
Dim strTest As String
strTest = dcInters.Recordset!mvtId 'Est égale à "EBL"
Fields(dcInters.Recordset!mvtId).Value = dcInters.Recordset!debits 'Indice en dehors de la plage
Fields(strTest).Value = dcInters.Recordset!debits 'Correct
Fields("EBL") = 8 'Correct
End Sub
Juste par curiosit., quelqu'un à une idée pourqoi il ne peut
pas prendre directement la valeure du recordset sans buggé?
"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 30 juil. 2008 à 18:20
Salut,
'Indice en dehors de la plage
Fields(dcInters.Recordset!mvtId).Value = dcInters.Recordset!debits
Il faudra vérifier ce que vaut dcInters.Recordset!mvtId.
Si c' est une valeur numérique, il se peut que le champ
dont le rang ordinal renvoyé n' éxiste pas.
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 30 juil. 2008 à 18:24
et combien même ça serait du texte; ce qu' il faut dans
Fuelds(ici) c' est le nom du champ et non une quelconque valeur.
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 30 juil. 2008 à 18:37
oups!
Pardon pour ce débit de conneries..
Je viens de comprendre.
Une supposition:(si je ne dis pas encore une)
Si le champ 8 est le dernier,
Fields(dcInters.Recordset!mvtId-1).Value = dcInters.Recordset!debits
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Vous n’avez pas trouvé la réponse que vous recherchez ?
bonjourcheval
Messages postés228Date d'inscriptionmercredi 13 décembre 2000StatutMembreDernière intervention 8 août 2011 30 juil. 2008 à 19:08
J'ai fait une erreur de frappe :
'Correct
Fields("EBL").Value
= 8
C'était seulement un test s'il allait accepter le "EBL"
Le field "EBL" existe bien.
Il y a un field pour tous les 'MvtID' (NBL, NBT, NBR, EBR, EBL, EBT,ETC)
Seulement, si je prends directement la valeur de mon recordset,
dcInters.Recordset!mvtId
Il me dit Indice en dehors de la plage...
Si je fais :
strTest = dcInters.Recordset!mvtId
Ensuite je fais le
Fields(strTest).value, il fonctionne. Pourtant. strTest = dcInters.Recordset!mvtId...
Donc les deux on la même valeur et retourne la même string!
Je ne comprends pas pourquoi... C'est peut-être un bug obscur de VB6!!!
Et pour le dcInters.Recordset!mvtId-1
Comme mvtId est un string qui vient de ma BD, je ne crois pas que faire -1 fasse quelque chose d'utile. ;)
Walla
"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 30 juil. 2008 à 19:23
c' est la description de l' erreur qui chiffonne.
S"' il parle d' indice, c' est qu' il s' agit du rang.
S' il s' agissait du nom de champ, il aurait mis :
ne fais pas partie de la collection.
Autre supposition:
dcInters.Recordset!mvtId renvoie -1 parcequ' il
ne peut pointer sur un enregistrement tout en allant
chercher son indice par le biais d' un autre pointeur.
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 20101 30 juil. 2008 à 20:37
Je ne comprend pas tres bien ta syntaxe... c'est peut-etre moi qui est trop old school mais ton Fields("I like turtules").value n'a pas de propriétaire... normalement la syntaxe que j'utilise c'est recordset.field("nom du champs").value....
Fields("I like turltes").Value = dcInters.Recordset!debits
bonjourcheval
Messages postés228Date d'inscriptionmercredi 13 décembre 2000StatutMembreDernière intervention 8 août 2011 30 juil. 2008 à 20:44
Évidamment, je n'ai pas vraiment de Field qui porte le nom de "I like turtles"
Je crois que je viens de comprendre ton point de vue... dans mon programme, j'avais bel et bien écrit
Fields("I like turltes").Value dcInters.Recordset!debits)
C'était seulement pour montrer à LIBRE_MAX que l'erreur :
Indice en dehors de la plage
Peut arriver même si c'est une erreur dans le nom d'un field.
Et c'est cela qui me surprends, car ma variable a le valeur de mon recordset...
Quand j'utilises directement le recordset, ça plante, quand j'utilises la variable qui recoit la valeur de recordset, ça fonctionne.
"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 30 juil. 2008 à 21:35
"En fait, c'est comme s'il ne trouvait pas
ce qui est contenu dans mon recordset!mvtID"
je continue dans ma lancée ..
c' est la nuit des supposition
le pauvre , il est écartelé !
Il ne sait pas quoi faire en premier:
Pour définir la valeur d' un champ, il a besoin de son nom.
Ce nom il ne l' a pas encore.
Alors il est obligé d' aller le chercher.
Par Quoi ?
Par un autre pointeur.
Alors laches-t-il prise à ce moment là ?
Ou c' est juste une question du passage de param:By Val ou By Ref ?
J' aimerais comprendre.Juste par curiosité
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.