requete evolutive sur un champ

Le
Jose Muller
bonjour,

J ai une table avec plus de 4000 noms .
je désire retrouver une personne en partant des premières lettres de so=
n nom.

Donc j ai un champs texte dans lequel je tape le nom et en dessous de ce ch=
amps j ai le résultat de la requête.

je tape M et je retrouve tous les noms commençants par le lettre M
MU .MU
. MUL MUL

ensuite dans le peu de lignes qui reste je sélectionne la bonne personne.


ACCESS 2010
merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JeanPaulo
Le #26370447
Jose Muller news::

bonjour,

J ai une table avec plus de 4000 noms .
je désire retrouver une personne en partant des premières lettres de
son nom.

Donc j ai un champs texte dans lequel je tape le nom et en dessous de
ce champs j ai le résultat de la requête.

je tape M et je retrouve tous les noms commençants par le lettre M
... MU .......................................................MU
.... MUL ......................................................MUL

ensuite dans le peu de lignes qui reste je sélectionne la bonne
personne.


ACCESS 2010
merci



Bonjour
en access 2003, j'ai fait ça. Mon système permet de dépasser 65000
entrées
sur le champ de recherche (séparé du champ d'affichage:

Sub Find_film_AfterUpdate()
' Find the record that matches the control.
DoEvents
Me.RecordsetClone.FindFirst "[Film_index] = " & Me![Find_Film]
Me.Bookmark = Me.RecordsetClone.Bookmark
'Me![Find_Film].SetFocus
'Old_tit = Me![Find_Film].Text
Find_Film_fini = True
Me![Film_Date].SetFocus
End Sub

Private Sub Find_film_Change()
'
' remplir la liste de recherche du titre
' soit avec tout, soit avec un ou deux lettres de Prem_let
' il n'y a pas besoin de requery pour activer la liste (ceci
' nécessaire au delà de 65000 records !)
' Version simplifiée et gestion des "'" 11/04/2006
Dim ssql As String
Dim deb As String
If Find_Film_fini = True Then Exit Sub
deb = Me![Find_Film].Text
Select Case Len(deb)
Case 0:
ssql = ""
Case 1:
If deb = "'" Then
deb = ""
End If
ssql = "SELECT Table_films.Film_index,
Table_films.Film_titre, Table_films.Film_Date, listenom.nom_divers " _
& "FROM Table_films INNER JOIN listenom ON
Table_films.Film_réalisateur = listenom.recordnum " _
& "WHERE Film_titre Like '" & deb & "*' ORDER BY
Table_films.Film_titre, Table_films.Film_Date;"
Case Else:
If Left$(deb, 1) = "'" Then
Mid$(deb, 1, 1) = "?"
End If
If Mid$(deb, 2, 1) = "'" Then
Mid$(deb, 2, 1) = "?"
End If
deb = Left$(deb, 2)
ssql = "SELECT Table_films.Film_index,
Table_films.Film_titre, Table_films.Film_Date, listenom.nom_divers " _
& "FROM Table_films INNER JOIN listenom ON
Table_films.Film_réalisateur = listenom.recordnum " _
& "WHERE Film_titre Like '" & deb & "*' ORDER BY
Table_films.Film_titre, Table_films.Film_Date;"
End Select
If deb = "" Then
Me![Find_Film].RowSource = ""
Else
Me![Find_Film].RowSource = ssql
End If
Me![Find_Film].Dropdown
End Sub

Private Sub Find_film_GotFocus()
Find_Film_fini = False
End Sub

On peut simplifer si la liste est courte, en ne créant pas une requête
'mobile'.

Dans le champ de recherche, dès qu'on tape une lettre, on a la liste
de tout les enregistrement qui commencent ainsi.

C'est beaucoup plus rapide et pratique que de faire une 'recherche'
Jose Muller
Le #26370567
Le mardi 6 octobre 2015 20:48:42 UTC+2, Jose Muller a écrit :

merci pour le code , et voici ma solution a partir de vos idées


Private Sub Texte2_Change()
'-------------------------
'
Dim sTexte As String
Dim SQL_Text As String
Dim us1date As Date

sTexte = Me.Texte2.Text

' date de validité
us1date = Format(Date, "mm/dd/yyyy")

' 2 vider le fichier temporaire
SQL_Text = "DELETE * " _
& "FROM [FICHIERTEMP]"
DoCmd.RunSQL SQL_Text

'3 creer une action et mettre le résultat dans le fichier temporaire
SQL_Text = "INSERT INTO [FICHIERTEMP] " _
& "SELECT * " _
& "FROM [FICHIER SOCIAL] " _
& "WHERE [FICHIER SOCIAL].[AU] >= " & "#" & us1date & "#" _
& " AND " _
& "([FICHIER SOCIAL].[NOM DU CHEF] Like '" & sTexte & "*') " _
& "ORDER BY [FICHIER SOCIAL].[NOM DU CHEF] ;"


''''''''' & "WHERE ( Left([FICHIER SOCIAL].[NOM DU CHEF],Lo) Like '" & sTexte & "') ;" ''''''''' erreur

MsgBox SQL_Text
DoCmd.RunSQL SQL_Text, True
' 4 afficher le resultat
DoCmd.OpenTable "FICHIERTEMP", acViewNormal
End Sub
albert
Le #26370653
Bonjour
Access fournit les outils nécessaires pour faire cela en mode création de
formulaire, et c'est très simple, en ajoutant un Requiry après chaque
recherche c'est plus rapide.
Voici l'exemple que j'utilise en liste déroulante. Si vous désirez je peux
faire la liste des étapes. (access 2007 et 2010)

http://www.cjoint.com/c/EJiobjs1RQD

Albert


"Jose Muller" news:
bonjour,

J ai une table avec plus de 4000 noms .
je désire retrouver une personne en partant des premières lettres de son
nom.

Donc j ai un champs texte dans lequel je tape le nom et en dessous de ce
champs j ai le résultat de la requête.

je tape M et je retrouve tous les noms commençants par le lettre M
... MU .......................................................MU
.... MUL ......................................................MUL

ensuite dans le peu de lignes qui reste je sélectionne la bonne personne.


ACCESS 2010
merci
Jose Muller
Le #26370767
merci

pas mal non plus cette solution.

Je vais l'utliser dans un autre endroit de mon programme.

merci
Publicité
Poster une réponse
Anonyme