Programmation VBA, débutant en grosse difficulté !

Programmation VBA, débutant en grosse difficulté ! - VB/VBA/VBS - Programmation

Marsh Posté le 04-09-2004 à 18:40:36    

Bonjour,
dans access, je suis en train de me construire une base de données classique contenant pour simplifier les 2 tables : fournisseurs et  articles. J'ai créé un formulaire commandes répondant aux besoins suivants : je sélectionne un fournisseur, un sous formulaire me donne la liste des articles vendus par ce fournisseur, et je voudrais par sélection envoyer un ou plusieurs de ces articles dans une zone de liste destination (qui correspondrait ainsi à des articles commandés).  
N'y connaissant rien en VBA, j'ai passé des heures sur l'aide Access et trouvé ceci :
"Exemple de propriété Selected
Dans l'exemple suivant, la propriété Selected est utilisée pour déplacer les éléments sélectionnés de la zone de liste lstSource vers la zone de liste lstDestination. Le paramètre Liste valeurs est attribué à la propriété OrigineSource (RowSourceType) de la zone de liste lstDestination et la propriété Contenu (RowSource) du contrôle est construite à partir de tous les éléments sélectionnés du contrôle lstSource. Le paramètre Étendue est attribué à la propriété SélectionMultiple (MultiSelect) de la zone de liste lstSource. La fonction CopieSelected( ) est appelée à partir du bouton de commande cmdCopieObjet.
Sub cmdCopieObjet_Click()
    CopieSelected Me
End Sub
 
Function CopieSelected(frm As Form) As Integer
    Dim ctlSource As Control
    Dim ctlDest As Control
    Dim chObjets As String
    Dim entLigneEnCours As Integer
    Set ctlSource = frm!lstSource
    Set ctlDest = frm!lstDestination
    For entLigneEnCours = 0 To ctlSource.Listcount - 1
        If ctlSource.Selected(entLigneEnCours) Then
            chObjets = chObjets & ctlSource.Column(0, _
                 entLigneEnCours) & ";"
        End If
    Next entLigneEnCours
    ' Initialise la propriété Contenu du contrôle de destination.
    ctlDest.RowSource = ""
    ctlDest.RowSource = chObjets
End Function
 Cela semble bien répondre à ma question mais je ne sais pas où placer cette commande et comment la faire fonctionner. Pouvez-vous m'aider dans cette voie ou me suggérer d'autres solutions. En vous remerciant par avance et évidemment prêt à donner des éclaircissements si je n'ai pas été très clair.

Reply

Marsh Posté le 04-09-2004 à 18:40:36   

Reply

Marsh Posté le 06-09-2004 à 11:20:48    

Tu as déjà tous les éléments en main. Qu'est-ce qui ne va pas ?
Si ton bouton s'appelle bien cmdCopieObjet et que dans ses propriétés, sur click, est bien placée la [Procédure événementielle] du code que tu as cité, tout devrait marcher.

Reply

Marsh Posté le 11-09-2004 à 09:21:12    

1 - tu crées un bouton "Envoyé" auquel tu affectes une procédure événementielle sur "click".
 
2 - Colle le code de ta fonction dans la procédure click (sans  "function" et "end sub".
 
3 - remplace frm!stSource par le nom de ton objet source et fmr!stDestination par ton objet destination

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed