Bonjour,
Je me retrouve avec un code interessant developpé par LedZeppII et qui concerne la sélection d'enregistrement.
Il ne s'applique pas complètement à mon cas car je souhaite faire une sélection dans un sous form. Je me trouve obligé de laisse ce code dans le formulaire A en raison de controle présent sur celui ci, et d'appeler les sub dans le sous form A.
Je ne suis pas doué pour adapté ce code à mon réel besoin et c'est la seule solution que je pense réalisable à mon niveau.
voici le code et sa description
Voici maintenant le code du formulaire "fmSelecteur" :J'ai un formulaire "fmSelecteur" en mode continu, basé sur une table "Produits" ayant pour champ clé "Réf produit".
La table pour sauver la sélection s'appelle tblSelectionFmSelecteur.
Elle a un seul champ "Réf produit", clé primaire de la table.
Sur le formulaire "fmSelecteur", dans la section En-tête de formulaire, j'ai une image dont le contrôle s'appelle "imgToucheCtl".
Elle représente la touche Ctl et sa propriété "Visible" est à "Non"
Autre chose importante, la propriété "Apperçu des touches" est à "Oui", pour détecter l'état de la touche Ctl.
J'ai un deuxième formulaire "fmSelection". Celui-ci est en mode continu et est basé sur la table "tblSelectionFmSelecteur".
Cela me permet d'afficher le contenu de la table, pendant que je change mas sélection.
Il est developpé pour fonctionné sur un formulaire en mode continu. Je souhaite le faire fonctionné sur un sous formulaire en mode feuille de donnée. Le principe des table qui sauvgarde les données m'oblige à devoir avoir cette table en source de mon formulaire. (sur le sous fom cela n'affiche plus mes données).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Option Compare Database Option Explicit ' Nom de la table dans laquelle on va sauver la sélection Const strTableSelection = "tblSelectionFmSelecteur" ' Nom du champ dans la table Const strChampSelection = "Réf produit" ' Nom du contrôle servant de clé pour mémoriser sélection Const strCtlCle As String = "F1" ' Variable pour savoir si la touche "Control" est appuyée Dim bToucheCTL As Boolean Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Call ToucheCTL(Shift, True) End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) Call ToucheCTL(Shift, False) End Sub Private Sub Form_Load() Call ViderSelection DoCmd.OpenForm "fmSelection" Me.txtEnrSelectionnes = DCount("*", strTableSelection) Me.SetFocus End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim lngSelTop As Long, lngSelHeight As Long lngSelTop = Me.SelTop: lngSelHeight = Me.SelHeight If Not bToucheCTL Then Call ViderSelection SauverSelection2 lngSelTop, lngSelHeight If CurrentProject.AllForms("fmSelection").IsLoaded Then Forms("fmSelection").Requery End If Me.txtEnrSelectionnes = DCount("*", strTableSelection) End Sub Private Sub ToucheCTL(Shift As Integer, bKeyDown As Boolean) If (Shift And acCtrlMask) = acCtrlMask Then bToucheCTL = bKeyDown If Me.imgToucheCtl.Visible <> bToucheCTL Then Me.imgToucheCtl.Visible = bToucheCTL End If End If End Sub Private Sub ViderSelection() Dim db As DAO.Database Set db = CurrentDb db.Execute "DELETE FROM [" & strTableSelection & "]" End Sub
Je souhaite donc laissé ce code sur le formulaire et appeler les sub dans le sous formulaire si c'est possible. Si il y a une autre solution je suis preneur.
MERCI §
Partager