Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

requete evolutive sur un champ

4 réponses
Avatar
Jose Muller
bonjour,

J ai une table avec plus de 4000 noms .
je d=E9sire retrouver une personne en partant des premi=E8res 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=E9sultat de la requ=EAte.

je tape M et je retrouve tous les noms commen=E7ants par le lettre M
... MU .......................................................MU
.... MUL ......................................................MUL

ensuite dans le peu de lignes qui reste je s=E9lectionne la bonne personne.


ACCESS 2010
merci

4 réponses

Avatar
JeanPaulo
Jose Muller wrote in
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'
Avatar
Jose Muller
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
Avatar
albert
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" a écrit dans le message de
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
Avatar
Jose Muller
merci

pas mal non plus cette solution.

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

merci