Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
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 24/11/2011, 12h44   #1
Candidat au titre de Membre du Club
 
Homme Rémi GANSONRE
Inscription : juillet 2011
Messages : 24
Détails du profil
Informations personnelles :
Nom : Homme Rémi GANSONRE
Localisation : Burkina Faso

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 24
Points : 10
Points : 10
Par défaut Utilsation de like dans une requete

Bonjour!

J'ai de l'aide.

j'ai créé un formulaire contenant un sous-formulaire + une zone de liste modifiable + un e zone de texte.

je veux que dèsque l'utilisateur commence à saisir dans la zone de texte, que mon sous formulaire liste les enregistrements commençant par les caractères de la zone de texte.
Voici mon code :
Code :
1
2
3
4
5
6
7
 
strNewRecord = " SELECT [Carte de Stock].Réf, [Carte de Stock].Désignation, [Carte de Stock].Entrée, [Carte de Stock].Sortie, [Carte de Stock].[Niveau Stock], [Carte de Stock].catégorie " & _
 " FROM [Carte de Stock] " & _
 " WHERE ((([Carte de Stock].Désignation) Like '" &  [Forms]![Formulaire2]![designation] & " * ') AND (([Carte de Stock].catégorie) =[Forms]![Formulaire2]![IDCat])); "
 
 
[Forms]![Formulaire2]![Carte de Stock sous-formulaire1].Form.RecordSource = strNewRecord
En plus je veux pas tenir compte de la casse des caractères saisis par l'utilisateur.
Mais ce code ne marche pas et pas d'erreur. Rien ne se passe.

Si quelqu'un peut me donner un coup de main.
Merci!
reims87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 14h24   #2
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 256
Points : 5 256
Salut,

Essaie de mettre le code sur l'évènement "Changement" de ta zone de texte...

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 15h42   #3
Candidat au titre de Membre du Club
 
Homme Rémi GANSONRE
Inscription : juillet 2011
Messages : 24
Détails du profil
Informations personnelles :
Nom : Homme Rémi GANSONRE
Localisation : Burkina Faso

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 24
Points : 10
Points : 10
Je viens de faire comme vous indiquez mais pas de changement.
Rien ne se passe toujours pas.
reims87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 16h20   #4
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 256
Points : 5 256
Peux-tu poster ton code complet

Il faut aussi utiliser la propriété text de la zone de texte :

Exemple :

Code :
1
2
3
4
5
6
7
8
9
Private Sub designation_Change()
strNewRecord = " SELECT [Carte de Stock].Réf, [Carte de Stock].Désignation, [Carte de Stock].Entrée, [Carte de Stock].Sortie, [Carte de Stock].[Niveau Stock], [Carte de Stock].catégorie " & _
 " FROM [Carte de Stock] " & _
 " WHERE ((([Carte de Stock].Désignation) Like '" &  [Forms]![Formulaire2]![designation].Text & "*' ) AND (([Carte de Stock].catégorie) =[Forms]![Formulaire2]![IDCat])); "
 
 
[Forms]![Formulaire2]![Carte de Stock sous-formulaire1].Form.RecordSource = strNewRecord
 
End Sub
A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 16h44   #5
Candidat au titre de Membre du Club
 
Homme Rémi GANSONRE
Inscription : juillet 2011
Messages : 24
Détails du profil
Informations personnelles :
Nom : Homme Rémi GANSONRE
Localisation : Burkina Faso

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 24
Points : 10
Points : 10
Voici le code mis dans "Après MAJ" de la zone de liste:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Private Sub IDCat_AfterUpdate()
 
Dim strNewRecord As String
 
strNewRecord = "SELECT [Carte de Stock].Réf, [Carte de Stock].Désignation, [Carte de Stock].Entrée, [Carte de Stock].Sortie, [Carte de Stock].[Niveau Stock], [Carte de Stock].catégorie " & _
" FROM [Carte de Stock] " & _
" WHERE ((([Carte de Stock].catégorie)=[Forms]![Formulaire2]![IDCat])); "
 
[Forms]![Formulaire2]![Carte de Stock sous-formulaire1].Form.RecordSource = strNewRecord
 
 
 
End Sub
Et maintenant voici le code mis dans "sur changement" de la zone de texte :
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
 
Private Sub designation_Change()
 
Dim strNewRecord As String
 
If Len([Forms]![Formulaire2]![designation]) = 0 Then
 
strNewRecord = "SELECT [Carte de Stock].Réf, [Carte de Stock].Désignation, [Carte de Stock].Entrée, [Carte de Stock].Sortie, [Carte de Stock].[Niveau Stock], [Carte de Stock].catégorie " & _
" FROM [Carte de Stock] " & _
" WHERE ((([Carte de Stock].catégorie)=[Forms]![Formulaire2]![IDCat])); "
 
Else
 
    If IsNull([Forms]![Formulaire2]![IDCat]) Then
 
    strNewRecord = " SELECT [Carte de Stock].Réf, [Carte de Stock].Désignation, [Carte de Stock].Entrée, [Carte de Stock].Sortie, [Carte de Stock].[Niveau Stock], [Carte de Stock].catégorie " & _
     " FROM [Carte de Stock] " & _
     " WHERE ((([Carte de Stock].Désignation)=[Forms]![Formulaire2]![designation]));"
 
    Else
 
    strNewRecord = " SELECT [Carte de Stock].Réf, [Carte de Stock].Désignation, [Carte de Stock].Entrée, [Carte de Stock].Sortie, [Carte de Stock].[Niveau Stock], [Carte de Stock].catégorie " & _
     " FROM [Carte de Stock] " & _
     " WHERE ((([Carte de Stock].Désignation) Like '" & [Forms]![Formulaire2]![designation] & " * ') AND (([Carte de Stock].catégorie)=[Forms]![Formulaire2]![IDCat])); "
 
    End If
 
End If
 
[Forms]![Formulaire2]![Carte de Stock sous-formulaire1].Form.RecordSource = strNewRecord
 
 
End Sub

NB: "Carte de Stock" est une requete de selection que j'ai créée.
En pièce jointe l'image du formulaire.
Images attachées
Type de fichier : jpg A poster.JPG (65,0 Ko, 5 affichages)
reims87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 17h48   #6
Candidat au titre de Membre du Club
 
Homme Rémi GANSONRE
Inscription : juillet 2011
Messages : 24
Détails du profil
Informations personnelles :
Nom : Homme Rémi GANSONRE
Localisation : Burkina Faso

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 24
Points : 10
Points : 10
Même avec la propriété Text de la zone de texte pas de changement.
reims87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 17h55   #7
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 256
Points : 5 256
Oui,

ça vient de ta condition au début:

Code :
If Len([Forms]![Formulaire2]![designation]) = 0 Then
à changer en :

Code :
If Len([Forms]![Formulaire2]![designation].text) = 0 Then
Tu comprends pourquoi ?

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 18h20   #8
Candidat au titre de Membre du Club
 
Homme Rémi GANSONRE
Inscription : juillet 2011
Messages : 24
Détails du profil
Informations personnelles :
Nom : Homme Rémi GANSONRE
Localisation : Burkina Faso

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 24
Points : 10
Points : 10
Merci je viens de corriger l'erreur dans la condition mais totalement résolu.

En fait je crois que le problème réside dans l'utilisation de " Like ".
Je viens de remarquer que c'est dans les requêtes où il y a Like qui ne marche pas.
Est-ce que j'ai utilisé le mot Like dans la requête ?
reims87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 18h24   #9
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 256
Points : 5 256
Il faut utiliser le like si tu utilises le '*', mais il faut bien coller le '*' à la variable :

extrait:

Code :
1
2
"..."
" WHERE ((([Carte de Stock].Désignation) Like '" & [Forms]![Formulaire2]![designation].text & "*') AND (([Carte de Stock].catégorie)=[Forms]![Formulaire2]![IDCat])); "
A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 18h34   #10
Candidat au titre de Membre du Club
 
Homme Rémi GANSONRE
Inscription : juillet 2011
Messages : 24
Détails du profil
Informations personnelles :
Nom : Homme Rémi GANSONRE
Localisation : Burkina Faso

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 24
Points : 10
Points : 10
Franchement je ne comprends plus rien.

J'ai tout vérifié et tout est correct mais queue d'âne.
reims87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 18h39   #11
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 256
Points : 5 256
Poste à nouveau ton code qui ne marche pas...
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 18h42   #12
Candidat au titre de Membre du Club
 
Homme Rémi GANSONRE
Inscription : juillet 2011
Messages : 24
Détails du profil
Informations personnelles :
Nom : Homme Rémi GANSONRE
Localisation : Burkina Faso

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 24
Points : 10
Points : 10
le code de la zone de texte:
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
 
Private Sub designation_Change()
 
Dim strNewRecord As String
 
If Len([Forms]![Formulaire2]![designation].Text) = 0 Then
 
strNewRecord = "SELECT [Carte de Stock].Réf, [Carte de Stock].Désignation, [Carte de Stock].Entrée, [Carte de Stock].Sortie, [Carte de Stock].[Niveau Stock], [Carte de Stock].catégorie " & _
" FROM [Carte de Stock] " & _
" WHERE ((([Carte de Stock].catégorie)=[Forms]![Formulaire2]![IDCat])); "
 
Else
 
    If IsNull([Forms]![Formulaire2]![IDCat]) Then
 
    strNewRecord = " SELECT [Carte de Stock].Réf, [Carte de Stock].Désignation, [Carte de Stock].Entrée, [Carte de Stock].Sortie, [Carte de Stock].[Niveau Stock], [Carte de Stock].catégorie " & _
     " FROM [Carte de Stock] " & _
     " WHERE ((([Carte de Stock].Désignation)=[Forms]![Formulaire2]![designation]));"
 
    Else
 
    strNewRecord = " SELECT [Carte de Stock].Réf, [Carte de Stock].Désignation, [Carte de Stock].Entrée, [Carte de Stock].Sortie, [Carte de Stock].[Niveau Stock], [Carte de Stock].catégorie " & _
     " FROM [Carte de Stock] " & _
     " WHERE ((([Carte de Stock].Désignation) Like '" & [Forms]![Formulaire2]![designation].Text & "* ') AND (([Carte de Stock].catégorie)=[Forms]![Formulaire2]![IDCat])); "
 
    End If
 
End If
 
[Forms]![Formulaire2]![Carte de Stock sous-formulaire1].Form.RecordSource = strNewRecord
 
 
End Sub
reims87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 18h49   #13
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 256
Points : 5 256
Re,

A la fin, après le '*' tu as 1 espace :

Code :
" WHERE ((([Carte de Stock].Désignation) Like '" & [Forms]![Formulaire2]![designation].Text & "* ') AND (([Carte de Stock].catégorie)=[Forms]![Formulaire2]![IDCat])); "
en enlevant l'espace :

Code :
" WHERE ((([Carte de Stock].Désignation) Like '" & [Forms]![Formulaire2]![designation].Text & "*') AND (([Carte de Stock].catégorie)=[Forms]![Formulaire2]![IDCat])); "
Sinon [Forms]![Formulaire2]![IDCat] contient du texte ?
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/11/2011, 08h51   #14
Candidat au titre de Membre du Club
 
Homme Rémi GANSONRE
Inscription : juillet 2011
Messages : 24
Détails du profil
Informations personnelles :
Nom : Homme Rémi GANSONRE
Localisation : Burkina Faso

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2011
Messages : 24
Points : 10
Points : 10
Bonjour!

Vraiment User vous êtes génial !

C'est exactement l'espace après '*' qui causait le problème. j'ai corrigé et ça marche maintenant.

Vraiment merci!

Cordialement!!!
reims87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h39.


 
 
 
 
Partenaires

Hébergement Web