Bonjour,
Comment modifier le module de recherche de Fabrice CONSTANS 1ère partie pour
1 - la table est définie (tbl_xxx) à la place de la liste déroulante cbo_table .
2 - faire plusieurs choix dans la liste des champs.
Merci
Bonjour,
Comment modifier le module de recherche de Fabrice CONSTANS 1ère partie pour
1 - la table est définie (tbl_xxx) à la place de la liste déroulante cbo_table .
2 - faire plusieurs choix dans la liste des champs.
Merci
Salut
Peut-être en utilisant la méthode de recherche de Jeannot45
Voici le code utilise:
********************************************
********************************************************
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 !Private Sub cmd_Rechercher_Click() ! ! Dim strTable As String, strField As String, strCriteria As String, strSql As String ! Dim Criter As Variant ! ! strTable = "[" & Me.cbo_table & "]" ' récupère le nom de la table ! strField = "[" & Me.cbo_champ & "]" ' récupère le nom du champ ! ! 'Gestion des nulls ! If IsNull(Me.cbo_table) Or IsNull(Me.cbo_champ) Then ! MsgBox "Vous devez renseigner la table et le champ pour effectuer une recherche !", vbExclamation + vbOKOnly, "Recherche" ! Exit Sub ! End If ! ! ' force les majuscules l'un ou l'autre ! Me.txt_critere = UCase$(Nz(Me.txt_critere)) ! 'Me.txt_critere = StrConv(Me.txt_critere, vbUpperCase) ! ! ' compose le critere de recherche ! strCriteria = strTable & "." & strField & " Like """ & Me.txt_critere & """" ! ! Select Case Me.opt_Recherche ! Case 1 ' strictement égal ! strCriteria = strTable & "." & strField & " Like """ & Me.txt_critere & """" ! Case 2 ' commence par ! strCriteria = strTable & "." & strField & " Like """ & Me.txt_critere & "*""" ! Case 3 ' contient ! strCriteria = strTable & "." & strField & " Like ""*" & Me.txt_critere & "*""" ! Case 4 ' finit par ! strCriteria = strTable & "." & strField & " Like ""*" & Me.txt_critere & """" ! Case 5 ' ne contient pas ! strCriteria = "NOT (" & strTable & "." & strField & " Like ""*" & Me.txt_critere & "*"")" ! End Select ! ' construit la requête sql ! strSql = "SELECT DISTINCTROW " & strTable & ".*" ! strSql = strSql & " FROM " & strTable ! strSql = strSql & " WHERE ((" & strCriteria & "));" ! !Me.lst_resultat.ColumnWidths = !"0,817cm;0,817cm;1,561cm;2,561cm;2cm;0,803cm;2,561cm;2,561cm;0,806cm;2,561cm;2,561cm;0.8cm;2,561cm;2,561cm;2,561cm;2,561cm;1cm;;2cm;0.8cm;2cm;2cm;0.8cm;2cm;!2cm;1cm;1cm;1cm;1cm;1cm;2cm;1cm" ! ! ! Me.lst_resultat.RowSource = strSql ' affecte sql a lst_Resultat ! Me.lst_resultat.Requery ' recalcule la liste ! ! ! Me.lbl_nbRecord.Caption = IIf(Me.lst_resultat.ListCount _ ! <= 1, 0, Me.lst_resultat.ListCount - 1) & "/" & _ ! DCount(Me.cbo_champ, Me.cbo_table) ! !End Sub
Comme intitulé dans le premier message, il s'agit celui de Loufab.
Comment remplacer
strTable = "[" & Me.cbo_table & "]" ' récupère le nom de la table:
remplacé par le nom de la table qui est la seule utilisée dans le formulaire
strField = "[" & Me.cbo_champ & "]" ' récupère le nom du champ:
Comment choisir les champs que l'on désire dans la liste déroulante Me.cbo_champ.
Comment faire une recherche sur 2 champs de cette table (champs texte , champs numerique.
Merci
Bonjour,
ça me semble évident à première vue, je ferais :strTable = "[" & Me.cbo_table & "]" ' récupère le nom de la table:.
remplacé par le nom de la table qui est la seule utilisée dans le formulaire
Où le terme NomTable est à remplacer par le nom de ta table.
Code : Sélectionner tout - Visualiser dans une fenêtre à part strTable = "[NomTable]"
Cdlt,
Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération![]()
Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
Gestion sur un planning des présences et des absences des employés
Gestion des rendez-vous sur un calendrier mensuel
Importer un fichier JSON dans une base de données Access :
Import Fichier JSON
Bonjour,
Merci pour la réponse, mais je me suis mal exprimé.
Le formulaire s'ouvre sur une liste déroulante "Me.cbo_Table" ou on choisit la table désirée.
Or je n'utilise qu'une seule table intitulée "tbl_Naissances".
----------------------------------------
-------------------------------------
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 !Private Sub cbo_table_AfterUpdate() ! !Dim strTable As String ! ! 'Mise à jour des liste déroulantes ! Me.cbo_champ.RowSource = Me.cbo_table.Value ! Me.cbo_champ.Requery ! ! 'Récupère le nom de la table ! strTable = Me.cbo_table ! ! 'Rend visible ! Me.lblNaissances.Visible = True ! Me.ImgNaissances.Visible = True ! !End Sub
Je souhaite supprimer la liste déroulante "cbo_Table" pour la remplacer par "tbl_Naissances" et pouvoir récupérer les champs de la tbl_Naissances dans cbo_Champ
Merci
Bonjour,
Concernant le nom de la table, je ne vois pas où est le problème, vous pouvez faire simplement :
Cdlt
Code : Sélectionner tout - Visualiser dans une fenêtre à part strTable = "[tbl_Naissances]"
Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération![]()
Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
Gestion sur un planning des présences et des absences des employés
Gestion des rendez-vous sur un calendrier mensuel
Importer un fichier JSON dans une base de données Access :
Import Fichier JSON
OK
Autre problème sur le code suivant
strVille = Me.lst_resultat.Column(13)
'strResul = DLookup("[tbl_communes.Nom]", "tbl_communes", "[tbl_communes.Ville] = '279'")
strResul = DLookup("[tbl_communes.Nom]", "tbl_communes", "[tbl_communes.Ville] = 'strVille'")
La 1ère ligne me renvoie bien le nom de la ville dont le code est 279
la 2ème ne fonctionne pas. il ne reconnait pas la variable strVille
J'ai essayé plusieurs formules pour srtVille , "" ,() , [], rien , retourne erreur null
Merci
Bonjour
Code : Sélectionner tout - Visualiser dans une fenêtre à part strResul = DLookup("[Nom]", "tbl_communes", "[Ville] = " & Me.lst_resultat.Column(13))
Bonjour,
Cela fonctionne en me retournant le code numérique ex "151".
Je voudrais que le résultat corresponde au nom de la ville associé au code "151" ex "Paris" qui est dans la table "Communes"
Le 1er champ de la table est "Ville" qui est le code "151" le second "Nom" qui correspond à "Paris".
Merci
Bonjour,
Peux-tu nous faire parvenir une copie d'écran du début de ta table et une copie d'écran de la structure. ?
On pourrait y voir les noms de colonnes et les premières valeurs. ça nous permettra de savoir pourquoi [Nom] renvoie '151' et non pas le nom de la ville.
Si Nom contient le Paris et que Ville contient 151 il n'y a pas de raison que :
Ne renvoi pas "Paris" pour un tuple 151, "Paris". Si Ville est Numérique uniquement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part strResul = DLookup("[Nom]", "tbl_communes", "[Ville] = " & Me.lst_resultat.Column(13) )
Si Ville est de type Texte la syntaxe doit plutôt être :
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part strResul = DLookup("[Nom]", "tbl_communes", "[Ville] = """ & Me.lst_resultat.Column(13) & """")
Détecter les modifications formulaire Cloud storage et ACCESS
Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie
Copie du contenu : tbl_communes
Ville Nom
001 Achères
002 Ainay-le-Vieil
003 Aix-d'Angillon
038 Allichamps
004 Allogny
Copie de la structure
Ville Texte Court
Nom Texte Court
Déclaration
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim strResul As Variant
renvoie toujours un nombre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim strResul As String
Les deux formules :
Renvoie systématiquement toujours un nombre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 strResul = DLookup("[Nom]", "tbl_communes", "[Ville] = " & Me.lst_resultat.Column(13) ) strResul = DLookup("[Nom]", "tbl_communes", "[Ville] = """ & Me.lst_resultat.Column(13) & """")
Merci.
C'est cette syntaxe que tu dois utiliser
Peux-tu poster le code complet de la procédure où tu utilises ce code ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 dim strResul as Variant strResul = DLookup("[Nom]", "tbl_communes", "[Ville] = """ & Me.lst_resultat.Column(13) & """")
Que renvoi Me.lst_resultat.Column(13) au moment de l'exécution ?
Cordialement,
Détecter les modifications formulaire Cloud storage et ACCESS
Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie
Bonjour,
J'ai résolu mon problème avec ce code
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim strResul As String strResul = Me.lst_resultat.Column(15) Me.LstCodeInsee.Value = strResul strResul = Me.LstCodeInsee.Column(1)
Partager