Bonjour,
Je vais essayer d'être le plus clair possible sur mon problème qui concerne un sous-formulaire et le type de données dans des tables.
Fonctionnement de ma base:
J'ai tout d'abord une table "CompteRenduReunion" qui contient 16 champs :
-N° : Numéro automatique
-DateReunion : Date/Heure
-MotsCle, Notes, Type, Auteur, Fichier1 à 5 et DescriptifFichier1 à 5 : Texte long
Le champ MotsCle contient plusieurs mots clé séparés par des "/".
Le champs Notes contient des notes sur une réunion.
Le champs Type contient le type de réunion dont il s'agit.
Le champs Auteur contient le nom de la personne ayant dirigé cette réunion.
Les champs Fichier1 à 5 peuvent contenir le chemin de 1 à 5 fichiers.
Les champs DescriptifFichier1 à 5 peuvent contenir le nom du fichier correspondant.
Si nécessaire, je pense pouvoir passer les champs Auteur, Type et DescriptifFichier1 à 5 en Texte court.
J'ai ensuite un formulaire de recherche qui me permet de retrouver un enregistrement dans la table citée précédemment.
L'utilisateur peut y chercher un compte rendu via des mots clé, l'auteur, une période (date début/date fin)ou le type de réunion.
A la validation le code suivant s'exécute:
Suite à ça, un nouveau formulaire est ouvert afin de lister toutes les réunions correspondant aux critères de recherche.
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 Private Sub BValider_Click() Dim Restrictions As String For i = 1 To 12 If Not Me.Controls("LMotCle" & i).Value Like "" And Not IsNull(Me.Controls("LMotCle" & i)) Then Restrictions = "[MotsCle] LIKE '*" & Me.Controls("LMotCle" & i).Value & "*' AND " End If Next i If Not Me.TDateDebut = "" And Not IsNull(Me.TDateDebut) Then Restrictions = "(CompteRenduReunion.DateReunion) > #" & Me.TDateDebut.Value - 1 & "# AND " End If If Not Me.TDateFin = "" And Not IsNull(Me.TDateFin) Then Restrictions = "(CompteRenduReunion.DateReunion) < #" & Me.TDateFin.Value + 1 & "# AND " End If If Not Me.LAuteur = "" And Not IsNull(Me.LAuteur) Then Restrictions = "[Auteur] = " & Me.LAuteur.Value & " AND " End If If Not Me.LTypeReunion = "" And Not IsNull(Me.LTypeReunion) Then Restrictions = "[Type] = " & Me.LTypeReunion.Value & " AND " End If If Me.CALLCRR = False And TestChaine(Restrictions) = False Then Restrictions = Left(Restrictions, Len(Restrictions) - 5) Else Restrictions = "" End If DoCmd.OpenForm "FListeCRR", acNormal, , Restrictions DoCmd.Restore End Sub
Sur ce formulaire "FListeCRR", j'ai inséré un sous-formulaire "SFListeCRR" contenant la date de la réunion, l'auteur, le type, les notes, les 5 champs avec les nom des fichiers (rempli ou non) et 5 boutons pour ouvrir chacun des fichiers.
Mes 2 formulaires ont la même source qui est la sélection de tous les champs de ma table citée en début de sujet.
C'est ici que mes 2 problèmes se posent:
1- Lors que je veux sélectionner les champs père/fils entre le formulaire "FListeCRR" et le sous-formulaire "SFListeCRR" afin de pouvoir appliquer mes critères de recherche, je ne peux pas sélectionner autre chose que mon champs date. Je pense que cela est due au fait que mes champs sont définis en texte long. Y a t'il une solution? Car même si je peux en changer certains, je ne pourrais pas changer mon champs "MotsCle" qui m'est très utile pour ma recherche.
2- J'ai premièrement essayé en mettant uniquement la date en père/fils sur mon formulaire. Cependant, lors de ma recherche avec le 01/06/2015 en date de début, le programme ne me ressors que les 3 enregistrement du 03/06/2015 alors que j'ai 5 enregistrements, dont 1 le 02/06/2015 et 1 le 01/06/2015. Et je n'arrive pas à résoudre ce problème.
Je vous remercie d'avance!
Partager