10
votes

Une fonction VBScript peut-elle renvoyer un dictionnaire?

J'ai un dictionnaire de données de formulaire que je veux modifier à l'aide d'une fonction.

Wrong number of arguments or invalid property assignment 


2 commentaires

Cette question est étroitement similaire à Stackoverflow.com/questions/4038021 / ... a demandé 5 minutes avant la vôtre.


Wow! (Condition de caractère minimum requise)


3 Réponses :


1
votes

Oui, vous devez utiliser la commande définie:

SET QUERYCLEANFORMEF = MYDICTFORM


0 commentaires

17
votes

Essayez ceci: xxx

avec des objets que vous devez utiliser défini pour dire à VBScript qu'il s'agit d'une référence d'objet que vous attribuez à la valeur de valeur.


0 commentaires

0
votes

Vous pouvez également utiliser les valeurs BYREF ou BYVAL dans la fonction. BYVAL, l'objet que vous avez envoyé à une fonction ou sous forme est copié dans une mémoire privée à utiliser à l'intérieur de la fonction et jeté après la fin de la fonction. BYREF, l'objet que vous avez envoyé à une fonction est référencé à et toutes les manipulations que vous apportez, supprime les touches, réglage de l'objet, etc., est directement effectuée à l'objet que vous avez envoyé.

EG P>

Sub test
   DIM testDict as variant
   call setdict(testDict)

   testDict.Add "test", "value" 

   call addValue(testDict, "test2","another value")

   msgbox testDict.Count

   Set testDict = Nothing
End Sub

Sub setdict(ByRef in_Dict as Variant)
  If Typename(in_Dict) <> "Dictionary" Then
    SET in_Dict  = CreateObject("Scripting.Dictionary")
  end if
end sub

sub addValue(ByRef in_Obj as Variant, ByVal in_Key as String, ByVal in_Value as String)
 if not in_Obj.Exists(in_Key) then
     in_Obj.Add in_Key, in_Value
 end if
end sub


0 commentaires