Gestion de commande simple

badziz Messages postés 62 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 28 juin 2011 - 30 oct. 2006 à 20:10
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 - 6 nov. 2006 à 22:27
Bonjour,
quelqu'un pourrait me dire comment faire pour afficher les données d'un tableau dans un List?
Les données proviennent d'un 1er Form qui sont saisies par l'utilisateur(code produit, désignation et quantité) et ensuite elles doivent être affichées dans un 2nd Form par l'intermédiaire d'un List.
Form1 pour la saisie des données:<!-- BBCode End -->
private sub ajoutproduit_click()
dim tabprod(1 to 20) as string
dim i as integer
for i%= 1 to 20
listproduit.additem.v tabprod(i)
v = str(tabprod(i).code_prod + "-" + tabprod(i).design + "-" + tabprod(i).qte)
next<!-- BBCode End -->end
Form1.Hide
Form2.Show
end sub

Form2 pour l'affichage dans le List:<!-- BBCode End -->
tabprod(i).code_prod = code_prod.txt
tabprod(i).designation = designation.txt
tabprod(i).qte = qte.txt
end sub<!-- BBCode End -->

Lorsque j'exécute, je remplis les 3 champs, je clique sur ajouter produit et ensuite j'arrive au 2e Form mais mon ListProduit est vide. Pouvez vous m'aider? merci.
<!-- BBCode End -->

16 réponses

radcur Messages postés 282 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 15 août 2012 2
30 oct. 2006 à 20:28
salut

private sub ajoutproduit_click()
dim tabprod(1 to 20) as string   ----> ton tableau tabprod est local.

tu devrais le définir en public ou en global pour regler ton problème.
0
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009
30 oct. 2006 à 21:10
non c'est pas une question de private ou public...etc

private sub ajoutproduit_click()
dim tabprod(1 to 20) as string
dim i as integer
for i%= 1 to 20
Form2. listproduit.additem tabprod(i)
v = str(tabprod(i).code_prod + "-" + tabprod(i).design + "-" + tabprod(i).qte)
ou alors ... Form2.listproduit.additem v
ou ..Form2.listproduit.additem tabprod(i) & v
next<!-- BBCode End -->end  <--- pas bon
Next i
Form1.Hide
Form2.Show
end sub

si ta ListBox est sur ta form2, il faut que tu pointe dessus
0
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009
30 oct. 2006 à 21:15
déjà je comprend meme pas ta procédure en fait!!
private sub ajoutproduit_click()
ton code il veut rien dire
et le code dans Form2,c'est la même chose!
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
30 oct. 2006 à 21:30
Salut Le cancre,

"ton code il veut rien dire
et le code dans Form2,c'est la même chose!"

>> tu me l'enlèves de la bouche, j'ai beau avoir essayer de comprendre, beh j'ai laissé tombé.

Comme quoi, une très bonne info dès le départ favorise les "bonnes réponses" (où du moins ça s'en approche)

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
badziz Messages postés 62 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 28 juin 2011 1
31 oct. 2006 à 17:03
J'ai essayé de faire le code moi même mais cela ne fonctionne pas. Il est possible que le code ne veuille rien dire, en effet je débute.
Mais pouvez vous m'aider à ce qu'il veuille dire quelque chose? qu'il fonctionne...

[quote]quelqu'un pourrait me dire comment faire pour afficher les données d'un tableau dans un List?
Les données proviennent d'un 1er Form qui sont saisies par l'utilisateur(code produit, désignation et quantité) et ensuite elles doivent être affichées dans un 2nd Form par l'intermédiaire d'un List.[\quote]

Merci de votre compréhension.
0
badziz Messages postés 62 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 28 juin 2011 1
3 nov. 2006 à 01:19
un p'tit Up!
Aidez moi SVP ;-)
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
3 nov. 2006 à 02:01
Allez, un p'tit bout de code pour te donner la direction à prendre :

' Pour l'exemple, j'ai créé 2 Forms (Form1 et
Form2).
' Sur Form1 : 1 bouton, nommé
ajoutproduit
' Sur Form2 : 1 listbox, nommé
listproduit

<hr size="2" width="100%" />'***
Code dans Form1 :
Option Explicit

Private Sub ajoutproduit_Click()
        Dim i   As Integer
    
    tabprod(1) = "Valeur 1"
    tabprod(2) = "Valeur 2"
    tabprod(3) = "Valeur 3"
    ' etc...
    Form2.Show
End Sub

Private Sub Form_Load()

End Sub

<hr size="2" width="100%" />'*** Code dans Form2
:
Option Explicit

Private Sub Form_Load()
        Dim i   As Integer

    For i = 1 To 20
        listproduit.AddItem tabprod(i)
    Next i
End Sub

<hr size="2" width="100%" />'*** Code dans Module1 :
Option Explicit

    Public tabprod(1 To 20)    As String


--Mortalino-- Colorisation
automatique

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
badziz Messages postés 62 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 28 juin 2011 1
3 nov. 2006 à 14:32
Merci pour ton aide!
J'ai suivi tes indications et cela fonctionne, maintenant il faut que je l'adapte à mes besoins...

J'ai donc remplacer cela dans le form1:
'*** Code dans Form1 :
Option Explicit

Private Sub ajoutproduit_Click()
        Dim i   As Integer
    
    tabprod(1) = InputBox("Code produit?" & code_prod)
    i = i + 1
    Form2.Show
End Sub

Private Sub Form_Load()

End Sub

De cette manière au lieu d'afficher valeur1 valeur2 etc j'ai la valeur que je saisie dans l'inputbox. Comment peut on faire pour afficher plusieurs valeurs sur la même ligne? Utiliser un tableau à plusieurs dimensions? N'est il pas possible de faire quelque chose comme cela:
v = str(tabprod(i).code_prod + "-" + tabprod(i).design + "-" + tabprod(i).qte)

Une fois la saisie de la 1ère ligne effectuée je ne parviens plus à ajouter d'autres données...
j'ai ajouter un bouton de retour dans le Form2 pourtant
'*** Code dans Form2 :
Private Sub retour_Click()
Form2.Hide
Form1.Show
End Sub
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
3 nov. 2006 à 15:58
Bonjour tout le monde,
t' as vu juste,
^^Utiliser un tableau à plusieurs dimensions
Il te manquait le comment ?
Le voici :
Public

tabprod() as string
Redim Preserve tabprod(20,3)

pour une lignetabprod(ligne,1)  "Valeur 1" >


code_prod

tabprod(ligne,2) = 

"Valeur 2"  =>


design




tabprod(ligne,3)  = 

"Valeur 3"  => qte




v = tabprod(ligne,1)& "-" & tabprod(ligne,2) & "-" & Cint(tabprod(ligne,3)

)

A+
chaibat
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
3 nov. 2006 à 16:04
Private Sub ajoutproduit_Click()
        Dim i   As Integer
    
    tabprod(<strike>1</strike>) = InputBox("Code produit?" & code_prod)
'     c'est i qu'il faut
    i = i + 1
    Form2.Show
End Sub



@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
3 nov. 2006 à 16:29
oui, mais à chaque ajout d' un code produit
tu redimensionnes ton tableau
en ajoutant un élement ce qui correspond à
i = i + 1
Redim Preserve tabprod(i,3)
0
badziz Messages postés 62 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 28 juin 2011 1
4 nov. 2006 à 18:38
Bonjour,


pourquoi utiliser une variable supplémentaire "ligne"? on pourrait pas utiliser "i"?
Est il possible de mettre direct:



tabprod(i,1) =  




code_prod

tabprod(i,2) = d




esign





tabprod(i,3) = 



qte



Pour récupérer ce qu'il y a dans les textbox?

Pour le:

ListProduit.AddItem.v tabprod()
v = tabprod(i,1)& "-" & tabprod(i,2) & "-" & Cint(tabprod(i,3))

cela ne fonctionne pas  J'ai encore du me planter lol!
j'ai essayé de déclarer v en tant que string ou integer c'est toujours pareil...
erreur: "argument not optional" euh oué ok! c'est possible
je précise que j'ai bien testé avant avec ligne au lieu de i mais c'est la même chose.
Dsl d'être aussi mauvais, c'est abusé!
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
4 nov. 2006 à 20:41
Bonsoir,
ligne c' était pour l' exemple.
t' es pas obligé de reproduire l' exemple tel quel.
Gardes ton
tabprod(i,1) =  code_prod
tabprod(i,2) = design
tabprod(i,3) =  qte

c' est bien...

Et puis qu' est ce que c' est que cette soupe (harira) ?
ListProduit.AddItem.v tabprod()
v = tabprod(i,1)& "-" & tabprod(i,2) & "-" & Cint(tabprod(i,3))

c' est plutôt

Dim v as string
v = tabprod(i,1)& "-" & tabprod(i,2) & "-" & Cint(tabprod(i,3))
ListProduit.AddItem v 

ou tout simplement
ListProduit.AddItem tabprod(i,1)& "-" & tabprod(i,2) & "-" & _ 
                    Cint(tabprod(i,3))
tu feras l' économie d' une variable...

Ensuite , ne tappes pas Machin.Machette n' importe comment !

Prends l' habitude de regarder après Machin. 
si tu as des methodes ou propriétés associé à l' objet en question

et ne sois pas désolé, mauvais !
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
4 nov. 2006 à 21:07
rectifies
ListProduit.AddItem tabprod(i,1)& "-" & tabprod(i,2) & "-" & _ 
                    tabprod(i,3)

tu vois ça m' arrives, moi aussi, d' être mauvais...
0
badziz Messages postés 62 Date d'inscription jeudi 11 mai 2006 Statut Membre Dernière intervention 28 juin 2011 1
6 nov. 2006 à 21:50
Merci bien
J'ai réussit avec mon programme à créer un fichier afin de stocker le contenu de ma list. Cependant j'ai toujours un sale problème de m*rde qui subsiste! Lorsque je clique sur ajouter produit, le ListProduit affiche 20 lignes de -- .
J'ai testé en remplacant le contenu de tabprod(i,1) par "test" au lieu de code_prod mais cela n'a rien changé. Je pense donc que le contenu de mes textbox n'est pas prit en compte. Pour éclaircir voici le code:

Form1:
Option Explicit




Private Sub ajout_prod_Click()
   Dim i As Integer
   ReDim Preserve tabprod(20, 3)





tabprod(i, 1) = code_prod
tabprod(i, 2) = design
tabprod(i, 3) = qte






Form1.Hide
Form2.Show





End Sub






Form2:

Option Explicit





Private Sub Form_Load()
        Dim i As Integer





    For i = 1 To 20
        ListProduit.AddItem tabprod(i, 1) & " - " & tabprod(i, 2) & " - " & tabprod(i, 3)
    Next i





i = i + 1
End Sub



Private Sub retour_Click()
Form2.Hide
Form1.Show
End Sub




Module:


Option Explicit



    Public tabprod() As String



Donc voila, je pense qu'il me manque quelque chose au niveau des déclarations afin que les données saisies soient enfin affichées dans ce satané List...
Sinon ca commence à bien m'gaver ce programme, je réussis à faire quelques trucs sympas comme une calculatrice ou un programme sur les suites de Fibonacci et je bloque sur un truc tout moizis, je suis blazé! J'vais pété un plomb!
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
6 nov. 2006 à 22:27
A bien réfléchir ton problème est dû à une mauvaise
conception.
Voilà ce que je te conseille de faire.
1° Oublies le code dans un premier temps
2° Prends un bout de papier et énumères (dans l' ordre)
les actions que tu veux entreprendre.(style rédaction et pas
de tabprod ni de listprod,juste des mots pour expliquer)
Si les actions suivent un enchainement logique,
il n' ya pas de raison que ça bloque.
Pour l' instant j' ai l' impression qu' on fait
du bricollage (un coup par-ci, un coup par là)
Et renvoies moi ton descriptif.
Parce que là j' avoue que je suis perdu.


chaibat
0
Rejoignez-nous