OVH Cloud OVH Cloud

faire "glisser" des données d'un champs à un autre

2 réponses
Avatar
Stach
Bonsoir à tous,

j'aimerai savoir si il est possible dans un formulaire de faire "glisser"
(en gardant le bouton gauche de la souyris enfonçé) une ligne se trouvant
dans une liste déroulante et de "déposer" ces données dans un champs texte?
Il faudrait aussi que ces données, vu qu'elles ont été déplacées,
disparaissent ou que mon stock soit diminuer de une unité dans la liste
déroulante.

Est-ce réalisable sous Access?

merci de votre aide.
--
Stach ;-)

2 réponses

Avatar
Ilan
Bonsoir,
je ne suis pas sur qu'on puisse le faire mais tu peux simuler avec une zone
de texte a fond transparent un drag and drop. Cette zone doit etre invisible
au chargement du formulaire.

Essaie ce code (DragBox la zone de texte que je deplace
- DropBox la zone de texte de destination
- Liste la zone de liste qui contient les valeurs)

Dim DragDrop As Boolean 'Mettre cette ligne dans l'entete
du code du formulaire

Sub Liste_Click()
DragBox.Value=Liste.Column(x)
'(ou x est la colonne qui contient la valeur a deplacer)
End sub

Private Sub Liste_MouseDown(.....
If Button = 2 Then
DragBox.Left = Liste.Left + X
DragBox.Top = Liste.Top + Y
DragBox.Visible = True
DragDrop = True
End If
End Sub

Sub Liste_MouseMove(.....
If Button=2 and DragDrop=True then
if Liste.left + X >= Liste.left then DragBox.Left=Liste.Left + X
If Liste.Top + Y >= Liste.Top Then DragBox.Top=Liste.Top + Y
End if
End sub

Sub Detail_MouseMove(
If Button = 2 And DragDrop = True Then
If X > 0 And X < Form.InsideWidth Then DragBox.Left = X
If Y > 0 And Y < Detail.Height - 225 Then DragBox.Top = Y
End If
End Sub

Sub DropBox_MouseMove (......
If Button=2 and DragDrop=True Then
DropBox.Value=DragBox.Value
..... (ici tu ajoutes ton code pour retirer une unite au stock)
DragDropúlse
DragBox.Visibleúlse
Endif
End Sub

Si tu as des controles entre la liste et la zone de texte de destination tu
devras
ajouter ce code dans l'evenement MouseMove de chacun de ces controles.

Sub moncontrol_MouseMove (....
if button=2 and dragdrop=true then
if moncontrol.left+x>=moncontrol.left Then DragBox.Left=moncontrol.left + X
if moncontrol.top+Y>=moncontrol.Top Then DragBox.Top=moncontrol.Top + Y
End if
End sub

Ce n'est pas superbement esthtique mais bon



Bonsoir à tous,

j'aimerai savoir si il est possible dans un formulaire de faire "glisser"
(en gardant le bouton gauche de la souyris enfonçé) une ligne se trouvant
dans une liste déroulante et de "déposer" ces données dans un champs texte?
Il faudrait aussi que ces données, vu qu'elles ont été déplacées,
disparaissent ou que mon stock soit diminuer de une unité dans la liste
déroulante.

Est-ce réalisable sous Access?

merci de votre aide.
--
Stach ;-)


Avatar
3stone
Salut,

"Stach"
j'aimerai savoir si il est possible dans un formulaire de faire "glisser"
(en gardant le bouton gauche de la souyris enfonçé) une ligne se trouvant
dans une liste déroulante et de "déposer" ces données dans un champs texte?
Il faudrait aussi que ces données, vu qu'elles ont été déplacées,
disparaissent ou que mon stock soit diminuer de une unité dans la liste
déroulante.



Regarde cette base exemple chez "Logipro"

http://www.logicielappui.com/tips/Acc97_DragDrop.zip



--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome