tof008
Messages postés695Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention 5 janvier 2010
-
13 déc. 2006 à 15:43
tof008
Messages postés695Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention 5 janvier 2010
-
13 déc. 2006 à 16:45
Bonjour à tous!
Petit problème : lorsque je lance mon appli, je recois un message d'erreur me disant "can't assign to array" au niveau de la ligne en rouge : je ne sais pas ce que ca peut etre malgré une recherche sur le forum... J'espere que quelqu'un aura le temps de jeter un petit coup d'oeil et de me proposer une solution!
Merci d'avance
Private Sub Timer1_Timer() 'cette ligne est surlignée en jaune'====================================================================================
'variable
'====================================================================================
Dim info As String
Dim tabe() As String
Dim taille As Integer
Dim i As Integer
Set trans = New Transfert
'on desactive le timer
Timer1.Enabled = False
Me.MousePointer = 11
'====================================================================================
'selection de l utilisateur pour le fichier log
'====================================================================================
KL.set_Log (connect.myEmail)
'====================================================================================
'connexion a la base ' info trans.connect(connect.myEmail, connect.myPass, connect.myServer)
'changement
'info = KXG.Post("KO.WSO_Login", connect.myEmail, connect.myPass, connect.myServer)
'si la connexion echoue
If info <> "Connected" Then
Me.MousePointer = 0
Exit Sub
End If
'====================================================================================
'reception de la liste des marchands ' tabe trans.Post("KO.WSO_GetListMerchant")
'changement
'tabe = KXG.Post("KO.WSO_GetListMerchant")
nbMerchant = UBound(tabe)
(Si la réponse vous convient, appuyez sur réponse acceptée...).
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 13 déc. 2006 à 16:41
Parce que ta fonction ne te renvoyer pas un tableau, elle te renvoyer une seule chaine de caractère.
Pour pouvoir renvoyer un tableau en fait il faut renvoyer en fait un variant. Le tableau n'est pas une variable complexe. En fait lorsque tu passe un tableau en argument, tu ne passe pas une variable come pour les variables simples mais tu passe un pointeur sur la zone mémoire ou est stocké le tableau.
C'set pour cela que l'on ne peut pas renvoyer de tableau dans une fonction car au moment de l'appel de la fonction, la taille du tableau de retour n'est pas connue et donc le tableau ne peut pas etre créer en memoire.
Par contre en variant, tu cree un structure qui sert à décrire le type de variable. Cette structure peut etre créer au moment de l'appel. Au retour de la fonction VB se charge de faire la conversion entre la structure variant représentant un tableau de string vers le tableau de string que tu as déclaré, juste avant de pouvoir détruire le tableau de la fonction.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
tof008
Messages postés695Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention 5 janvier 201033 13 déc. 2006 à 15:54
<li>
1er point : Que renvoie trans.Post ??????</li>
Justement trans.Post me renvoie un tableau :
Case "KO.WSO_GetListMerchant":
Dim tabe() As String
tabe = KO.WSO_GetListMerchant(session)
'test si la liste en vide
If InStr(tabe(0), "A_NbElement=""0""") <> 0 Then
tabe(0) = "0"
Post = tabe
Exit Function
End If
Post = tabe
End Select
(Si la réponse vous convient, appuyez sur réponse acceptée...).
Noubliez pas de lire le REGLEMENT
Vous n’avez pas trouvé la réponse que vous recherchez ?
tof008
Messages postés695Date d'inscriptionjeudi 5 mai 2005StatutMembreDernière intervention 5 janvier 201033 13 déc. 2006 à 16:32
exactement ca Casy! Merci beaucoup. J'ai changé ma fonction en Variant au lieu de String et ca marche nickel! Tu peux me dire pourquoi ca ne marchait pas?
(Si la réponse vous convient, appuyez sur réponse acceptée...).