Page 1 sur 2

[LS] Récupérer L'ACL d'une base en Texte.

MessagePublié: 07 Déc 2009 à 10:21
par Ahamay
Hello,

Courage à tous en ce début de semaine ;)

Alors, mon petit howTo du jour : Comment récupérer l'ACL d'une base dans un champ de texte ou RicheText.

En gros j'aimerai obtenir un truc du genre :

******
Default, no Access
MonGroupe1, Author, [RoleA], [RoleB]
MonGroupe2, Editor, [RoleA], [RoleC], [RoleD]
MonUSer1, Manager, [RoleA], [RoleB], [RoleC], [RoleD], [RoleE]
MonUSer2, Designe, [RoleC], [RoleD], [RoleE]
...

ça inspire qqun ?

MessagePublié: 07 Déc 2009 à 10:22
par Michael DELIQUE

MessagePublié: 07 Déc 2009 à 10:44
par Ahamay
Que dire......

:merci: Michael...

Bon, avec toutes les astuces et bouts de code que je te taxe,
.... si tu passes dans la région, t'es officellement invité a venir manger une fondue :)

:beer:

MessagePublié: 07 Déc 2009 à 10:46
par Michael DELIQUE
Miam !

euh t'es planqué ou ?

MessagePublié: 07 Déc 2009 à 10:49
par Ahamay
Bin là ou on fait la meilleure fondue au monde, pardis :)

T'as même le choix.... fondue Suisse (je bosse à Genéve)... ou fondue savoyarde (je crèche à Annecy)

Entre 2 descentes de pistes ;)

MessagePublié: 07 Déc 2009 à 10:53
par Michael DELIQUE
bon moi et les ski on c'est pas parler depuis 20ans...

par contre pour de la fondu... je dis pas a l'occaz avec ma smala lol

MessagePublié: 07 Déc 2009 à 11:00
par Bidouille
une bonne tartiflette avec un bon vieux reblochon ...pour alterner....
J'ai skié au Saisies pendant 10 ans ... maintenant c'est trop loin... mais bon les Pyrénnée à 1heure ca le fait ;-) ;-)

MessagePublié: 07 Déc 2009 à 11:02
par Ahamay
oh bin tu sais question smala, entre ma copine et moi ça nous en fait 6 (4 a temps plein) alors.... mem'Po peur .... et on a la place ;)

MessagePublié: 07 Déc 2009 à 11:04
par Michael DELIQUE
lol

tu connais pas ma terreur ! lol

MessagePublié: 07 Déc 2009 à 11:42
par Ahamay
180 M2 sur 3 niveaux..... les terreurs on les parquent au sous sol le temps de manger la fondue ;)
... on a de l'entrainnement -lol-

MessagePublié: 07 Déc 2009 à 11:43
par Michael DELIQUE
On Arrive ! fait fondre la claquosse !

MessagePublié: 07 Déc 2009 à 12:09
par Ahamay
C'est quand tu veux...... ou plutot, quand t'as l'occase de passer dans le coin.

Bon pour revenir a nos moutons.... j'ai un little soucis avec ta fonction, je l'appel en lui passant le param de ma base a analyser, tout baigne... la variable lstValue récupère bien toute mon ACL exactement comme je le veux, mais j'arrive pas à renvoyer son contenu dans mon champ....
j'ai essayé avec :

appenditemvalue..... marche pô......
mondoc.monchamp = lstValue..... marche po non plus,
monDoc.monChamp=LCAImage(dbSource)..... pas mieux

ce que je pige pas bien c'est que mon champ recupère bien qqchose mais ce sont des caracteres tordus (êi┌ˆi┌) et si je regarde l'Item en debug, il ne contient qu'une seule valeur (0).... pourtant mon champ dans mon form est bien Multi Value !!!

Est ce que ca a un rapport avec les séparateurs définis ?
Ou encore mon champ doit etre en RT ?


:(

MessagePublié: 07 Déc 2009 à 12:22
par Michael DELIQUE
parceque je renvois une liste et non un array !

un array tu peut le passer directement dans un champ pas une liste

donc soit tu modifie la fonction pour qu'elle renvois un array

soit tu aliment ton champ en bouclant sur la liste

j'aime pas les array !!!

MessagePublié: 07 Déc 2009 à 12:26
par Michael DELIQUE
sinon essais cette fonction, elle converti une liste en array et un array en list

Code : Tout sélectionner
Public Function ArrayList(vrValue As Variant, wnbLbound As Integer) As Variant
   
   'converti une liste en array et un array en list
   
   Dim array () As Variant
   Dim nbLbound As Integer
   Dim nbUbound As Integer   
   Dim lstValue List As Variant
   
   On Error Goto ErreurHandle
   
   
   Select Case Datatype(vrValue)
   Case 2078 'liste
      
      Select Case Datatype(wnbLbound)
      Case 0,1,9,10 ' EMPTY,NULL,OLE object or NOTHING
         nbLBound = 0
      Case Else
         
         If wnbLbound <> 0 Then
            nbLBound = 1
         Else
            nbLBound = 0
         End If
      End Select
      
      nbUBound = nbLBound-1
      Forall Value In vrValue
         nbUBound = nbUBound+1
      End Forall
      
      Redim array(nbLBound To nbUbound)
      
      nbLBound = nbLBound - 1
      
      Forall value In vrValue
         nbLBound = nbLBound+1
         array(nbLbound) = value
      End Forall
      
      ArrayList = array
      Erase array
      Exit Function
   Case 8,192, 8,704  ' array
      
      nbLbound = Lbound(vrValue)-1
      Forall value In vrValue
         nbLbound = nbLbound +1
         lstValue(nbLbound) = value
      End Forall
      
      ArrayList = lstValue
      Erase lstValue
   Case Else
      ArrayList = vrValue
      Exit Function
      
   End Select
   
   Exit Function
ErreurHandle:
   Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   ArrayList = Null
   Exit Function   
End Function

MessagePublié: 07 Déc 2009 à 14:12
par Ahamay
Bon c'est pas ma journée.......
En utilisant ta fonction de conversion, j'ai exactement le même soucis,
je passe par une variable "tmpL" (déclarée en variant)

-> tmpL= ArrayList(LCAImage(dbSource, curdoc),0)

et j'ai le même résultat.... en debug tmpL est rempli par exactement ce que je veux.... mais impossible de le renvoyer dans mon champ :(

et ce quelque soit le type de mon champ (Text multivalue ou RT)
et quelque soit la méthode (AppendRTItem ou curdoc.ArchiveACL= tmpL)


Bon, soit je vais me recoucher, voit je cherche un stage pour devenir pizzaiolo :boul02: