Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/11/2010, 09h24   #1
Membre régulier
 
Inscription : juillet 2010
Messages : 230
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 230
Points : 82
Points : 82
Par défaut Mettre à jour plusieurs enregistrements en même temps (sélection dans un sous form)

bonjour à tous,

je souhaite mettre à jour des enregistrements via une combox. Pour cela je souhaite les sélectionner dans le sous formulaire puis assigner la valeur de la combox par clic sur bouton.

Pour un enregistrement sélectionné, mon code fonctionne mais lorsque j'ai plusieurs enregistrements je ne sais pas comment appeler la sélection... J'ai utilisé l'aide access pour mettre en place les fonctions SelTop et SelHeight afin de sélectionner plusieurs enregistrements.

voici mon code sur l'évènement clic du bouton commande :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub cmdSelectedCompanyNames_Click()
Dim combo As String
Dim X
   ' Restore the lost selection.
   SelRestore
 
   ' Enumerate the list of selected company names.
   X = DisplaySelectedCompanyNames()
combo = Me.choixcontroleur.Value
 
DoCmd.RunSQL "UPDATE T_dossiers SET [ControleurSecond]= '" & combo & "'  WHERE IDdossier=" & Me.recevabilité_formA.Form.IDdossier
End Sub
je n'ai pas changé les noms utilisés dans l'exemple de microsoft donc ne pas faire atention à cela. je me demande comment mettre à jour X qui représente si je ne me trompe pas la sélection de mon sous form.

Le code doit être modifié au niveau du module ou sur l'évènement click ?

Voici le code du module :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Option Compare Database
Option Explicit
Dim MySelTop As Long
Dim MySelHeight As Long
 
Dim MySelForm As Form
Dim fMouseDown As Integer
 
Function DisplaySelectedCompanyNames()
   Dim i As Long
   Dim F As Form
   Dim RS As Recordset
Dim combo As Long
   ' Get the form and its recordset.
   Set F = Forms![EncoursCtrl_Form]
   Set RS = F.RecordsetClone
 
   ' Move to the first record in the recordset.
   RS.MoveFirst
 
   ' Move to the first selected record.
   RS.Move F.SelTop - 1
 
   ' Enumerate the list of selected records presenting
   ' the CompanyName field in a message box.
   For i = 1 To F.SelHeight
     MsgBox RS![Controleur]
     RS.MoveNext
   Next i
End Function
 
Function SelRecord(F As Form, MouseEvent As String)
   Select Case MouseEvent
      Case "Move"
         ' Store the form and the form's Sel property settings
         ' in the MySel variables ONLY if mouse down has not
         ' occurred.
         If fMouseDown = True Then Exit Function
         Set MySelForm = F
         MySelTop = F.SelTop
         MySelHeight = F.SelHeight
 
      Case "Down"
         ' Set flag indicating the mouse button has been pushed.
         fMouseDown = True
      Case "Up"
         ' Reset the flag for the next time around.
         fMouseDown = False
   End Select
End Function
 
Public Sub SelRestore()
Debug.Print "got into Restore"
   ' Restore the form's Sel property settings with the values
   ' stored in the MySel variables.
   MySelForm.SelTop = MySelTop
   MySelForm.SelHeight = MySelHeight
 
End Sub
Si quelqu'un a une idée... (?) merci
Chagui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 13h41   #2
Membre Expert
 
Homme Pierre ANTOINE
Inscription : février 2008
Messages : 650
Détails du profil
Informations personnelles :
Nom : Homme Pierre ANTOINE
Âge : 43
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : février 2008
Messages : 650
Points : 1 302
Points : 1 302
Bonjour

Pour ma part, j'ai toujours cru que la sélection multiple dans les "combo box " était impossible.

Je passe plutôt par des listes.

Pierre
pier.antoine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 14h08   #3
Membre régulier
 
Inscription : juillet 2010
Messages : 230
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 230
Points : 82
Points : 82
Bonjour,

En faite ce n'est pas dans les combobox que je fais une sélection multiple. Je ne prend qu'une valeur dans la combox que je souhaite mettre à jour sur plusieurs enregistrements dans mon sous formulaire...

A moins d'avoir mal compris ce que m'as dit...
Chagui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h33.


 
 
 
 
Partenaires

Hébergement Web