Page 1 sur 1

Une erreur que je m'explique pas

MessagePublié: 08 Déc 2009 à 12:29
par Ahamay
Hello,

En utilisant le code que Michael dans son infinie mensuétude m'a gracieusement tranféré hier ( http://forum.dominoarea.org/une-image-de-la-lca-t14551.html ), et que j'ai adapté a mes besoins afin de flinguer toute l'ACL d'une Base ... Bin, je me heurte a une erreur qui me laisse perplexe :

En gros : Voici le code en question :

Code : Tout sélectionner
Set Entry = Acl.getfirstEntry
While Not Entry Is Nothing
...
If Entry.Name <> "-Default-" Then
Call Entry.Remove   
End If   
...      
Set Entry = Acl.getNextEntry(Entry) 
Wend



Ca plante sur le Set Entry = Acl.getNextEntry(Entry)
à la seconde boucle !

Message d'erreur :
Erreur 4207 - Function require a valid ADT argument


Ce que je m'explique pas c'est que si je vire le Call Entry.Remove
ca boucle impecable.

une idée ???

MessagePublié: 08 Déc 2009 à 12:35
par Michael DELIQUE
salut

essais

Code : Tout sélectionner
dim entryTemp

Set Entry = Acl.getfirstEntry
While Not Entry Is Nothing
...
If Entry.Name <> "-Default-" Then
set entrytemp = entry
else
set entryTemp = nothing 
End If   
...     
Set Entry = Acl.getNextEntry(Entry)
if entrytemp not is nothing then
call entrytemp.remove
end if
Wend

Re: Une erreur que je m'explique pas

MessagePublié: 08 Déc 2009 à 13:11
par abertisch
Ahamay a écrit:Hello,

En utilisant le code que Michael dans son infinie mensuétude m'a gracieusement tranféré hier ( http://forum.dominoarea.org/une-image-de-la-lca-t14551.html ), et que j'ai adapté a mes besoins afin de flinguer toute l'ACL d'une Base ... Bin, je me heurte a une erreur qui me laisse perplexe :

En gros : Voici le code en question :

Code : Tout sélectionner
Set Entry = Acl.getfirstEntry
While Not Entry Is Nothing
...
If Entry.Name <> "-Default-" Then
Call Entry.Remove   
End If   
...      
Set Entry = Acl.getNextEntry(Entry) 
Wend



Ca plante sur le Set Entry = Acl.getNextEntry(Entry)
à la seconde boucle !

Message d'erreur :
Erreur 4207 - Function require a valid ADT argument


Ce que je m'explique pas c'est que si je vire le Call Entry.Remove
ca boucle impecable.

une idée ???


Salut,

Tu lui supprime son "index" comme ca sauvagement. Le pôvre ne sait plus ou il en est.

Passe par une variable temporaire et surprime la ! :wink:

MessagePublié: 08 Déc 2009 à 13:12
par Michael DELIQUE
re

c'est que j'ai fais dans le code d'exemple !


oh faite tu sais combien ça coute la mal traitance d'index !

MessagePublié: 08 Déc 2009 à 13:13
par abertisch
Michael DELIQUE a écrit:re

c'est que j'ai fais dans le code d'exemple !


oh faite tu sais combien ça coute la mal traitance d'index !


:oops:

J'ai mal lu désolé. :oops: Mais l'idée est la même.

MessagePublié: 08 Déc 2009 à 14:18
par Ahamay
Michael, en plus de la fondue, tu te vois gratifié d'une bouteille de génépi ;)
... pour après la fondue (ou avant c'est selon)


Bon, genial ça marche... mais permettez moi de jouer les lourd 30 secondes... j'aime bien comprendre pourquoi j'me plante, alors, qu'est ce qui merdait ? pourquoi devoir passer par une variable temp ?

MessagePublié: 08 Déc 2009 à 14:23
par Michael DELIQUE
bon c'est simpe, mais ça va faire grossir la bouteille

pour passer a l'entry suivante : Set Entry = Acl.getNextEntry(Entry)

le ls a besoin de connaitre l'entry actuel, si tu la supprime avant il perd c'est petit !

ç'est le meme principe/pb dans les vue ou collection quand supprime un doc

MessagePublié: 08 Déc 2009 à 14:27
par Ahamay
Arf.... bin oui :biensur:
logique en fait.... et ca marche si je le supprime pas car son pointeur est toujours d'equerre... enfin si j'ai bien tout capté. :scratch:

:merci:

MessagePublié: 08 Déc 2009 à 14:29
par Michael DELIQUE
voila !

MessagePublié: 08 Déc 2009 à 15:00
par Ahamay
Autant que ça serve, alors c'est Tip-Top dans les Tip ;)

http://forum.dominoarea.org/viewtopic,p,123416.html#123416