Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3668 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Mini moteur de recherche sous access

n°790018
skeye
Posté le 08-07-2004 à 11:04:54  profilanswer
 

Reprise du message précédent :

Mr Mazurier a écrit :

ok ok MrSkeye pensais juste, il me renvoi  
SELECT * FROM entreprise  WHERE ent_nom LIKE '**';
donc il considere strnom comme vide


...donc essaye de récupérer correctement strnom pour commencer...;)


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 08-07-2004 à 11:04:54  profilanswer
 

n°790024
JihemAir
Je sais pas
Posté le 08-07-2004 à 11:06:48  profilanswer
 

Bien vu skeye. Pour strnom = Ent_nom, d'ou vient Ent_nom ?

n°790026
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-07-2004 à 11:07:07  profilanswer
 

mais avec ta modif, jihemair, qd je change le nom de l'entreprise, il remet de suite l'ancien et l'ordi bloque pendant 10/15 secondes, c'est trop bizarre, parceque la il ne m'affiche pas le msgbox " vide ". alors yen a un qui vois vide et l'autre non ?
pourtant, je viens de faire un msgbox demandant d'afficher strnom et la il n'affiche rien ...

n°790031
skeye
Posté le 08-07-2004 à 11:08:30  profilanswer
 

Mr Mazurier a écrit :

mais avec ta modif, jihemair, qd je change le nom de l'entreprise, il remet de suite l'ancien et l'ordi bloque pendant 10/15 secondes, c'est trop bizarre, parceque la il ne m'affiche pas le msgbox " vide ". alors yen a un qui vois vide et l'autre non ?
pourtant, je viens de faire un msgbox demandant d'afficher strnom et la il n'affiche rien ...


Il a aussi raison, le caractère générique est * et non %.
Ta requête doit tout retourner, du coup, ce qui doit faire tout ramer...[:joce]


Message édité par skeye le 08-07-2004 à 11:08:39

---------------
Can't buy what I want because it's free -
n°790034
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-07-2004 à 11:10:00  profilanswer
 

ent_nom c'est le champs de la table et aussi la zone de text qui contient le champ sur lequel est fait la recherche.  
 
bon je vais bloguer le reste de l'algo jusqu'a ce que j'arrive a avoir strnom correctement

n°790046
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-07-2004 à 11:16:17  profilanswer
 

bon alors j'ai reussi a obtenir correctement strnom.
seulement qd le champs contient bluecom par exemple, si je tape s, l'ordi réaffiche direct bluecom (entre b et s y a une diference qd meme ... ) et se met a charger pdt 10/15 secondes
je remet mon code pour le cas ou :  
 
Dim strnom As String
Dim rs As DAO.Recordset
Dim qdReq As DAO.QueryDef
   
    strnom = Ent_nom
    Set qdReq = CurrentDb.CreateQueryDef("", "SELECT * FROM entreprise  WHERE ent_nom LIKE '*" & strnom & "*';" )
    Set rs = qdReq.OpenRecordset
     
    If rs.EOF And rs.BOF Then
        MsgBox "Rien! Que dalle! Nada!"
        Exit Sub
    End If
     
    Ent_nom.SetFocus
    Ent_nom.Text = rs.Fields("ent_nom" )
    Ent_adr.SetFocus
    Ent_adr.Text = rs.Fields("ent_adr" )
     
    MsgBox strnom
 
 
End Sub

n°790053
skeye
Posté le 08-07-2004 à 11:18:34  profilanswer
 

Tu l'exécutes quand cette fonction?


---------------
Can't buy what I want because it's free -
n°790062
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-07-2004 à 11:21:41  profilanswer
 

ah zut j'ai oublié un bout :
 
Private Sub Ent_nom_Change()
 
donc comme vous pouver le voir elle doit s'executer des que la zone de texte est modifié. Mias peut etre n'est ce pas bon de l'executer comme ca ? dans ce cas avec un timer qui verifie le champs tout les x secondes ou un bouton peut etre ...

n°790065
skeye
Posté le 08-07-2004 à 11:23:43  profilanswer
 

Mr Mazurier a écrit :

ah zut j'ai oublié un bout :
 
Private Sub Ent_nom_Change()
 
donc comme vous pouver le voir elle doit s'executer des que la zone de texte est modifié. Mias peut etre n'est ce pas bon de l'executer comme ca ? dans ce cas avec un timer qui verifie le champs tout les x secondes ou un bouton peut etre ...


bah à chaque fois que tu tapes une lettre il se connecte à la base, exécute une requête, et met à jour...c'est un peu lourd, non?


---------------
Can't buy what I want because it's free -
n°790077
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-07-2004 à 11:30:22  profilanswer
 

oui mais c'est un petit peu le but  
je veux que lorsque je tape le nom, il cherche celui qui lui ressemble le plus et l'affiche
 
bon si on y arrives pas je peux me limiter a aller jusqu'au premier enregistrement commencant par la lettre taper, un peu comme un index

mood
Publicité
Posté le 08-07-2004 à 11:30:22  profilanswer
 

n°790087
JihemAir
Je sais pas
Posté le 08-07-2004 à 11:39:20  profilanswer
 

Au chargement du formulaire, charge ta combo avec tous les noms d'entreprises de la base. Apres, avec l'évènement change, tu selection dans la liste de la combo (et pas dans la base) les noms qui s'approchent...

n°790090
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-07-2004 à 11:40:14  profilanswer
 

ah j'y avaient pas pensait ! spabete ca

n°790097
JihemAir
Je sais pas
Posté le 08-07-2004 à 11:46:24  profilanswer
 

Et peut-etre même que tu n'auras pas besoin d'ecrire une seule ligne de code pour qu'elle t'affiche les noms commençant par les lettres tapées....

n°790104
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-07-2004 à 11:51:59  profilanswer
 

ca marche nickel ! c'est un truc ds ce genre la mais j'y avais pas pensé ! par contre il faut que tout le reste s'affiche en fonction du nom qui est selectionner.
comment faire ? avec une requete encore je pense, voir la meme qu'avant je pense mais par contre je vois pas qd l'executer ...

n°790112
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-07-2004 à 11:57:54  profilanswer
 

bon je vais aller manger, bon appetit messieurs

n°790365
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 08-07-2004 à 14:55:45  profilanswer
 

bien, le probleme de navigation dans  les noms d'entreprise est reglé mais pour aller a l'enregistrement contenant le nom rechercher, comment peut on faire ? je connais movenext pour aller au suivant mais pour aller a celui contenant un nom precis je suppose qu'il faut une requete
 
select *  
from entreprise
where ent_nom= strnom;
 
seulement comme il reste sur l'enregistrement en cours, qd je met tout les champs deans les zones de textes, il pensent que je modifie l'enregistrement et donc m'affiche un erreur comme ent_nom est clé primaire.
 
j'ai voulue regarder comment faiser la fonction auto de rechercche sous access mais le code que l'on voit correspond seulement a l'ouverture d'un menu
 
zavez pas une idée ?

n°790735
glod 2
Votre trajet, notre projet.
Posté le 08-07-2004 à 19:23:51  profilanswer
 

méthode find de ton recordset :)

n°791553
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 09-07-2004 à 14:27:04  profilanswer
 

voila ce que j'ai trouvésous google
apparement cela devrai chercher le 1er enregistrement contenant les parametre de strnom
 
Private Sub Ent_nom_Change()
Dim strnom As String
Dim Enr As Recordset
 
strnom = Ent_nom
Set Enr = CurrentDb.OpenRecordset("Ent_nom", dbOpenDynaset)
Enr.FindFirst = "ent_nom = '& strnom & '"
Enr.Close
 
End Sub
 
seulement ca ne marche pas, il me dit  
"erreur de compilation
menbre de methode ou de donnée introuvable"


Message édité par Mr Mazurier le 09-07-2004 à 14:27:38
n°792273
glod 2
Votre trajet, notre projet.
Posté le 10-07-2004 à 05:45:50  profilanswer
 

Glod 2 a écrit :

méthode find de ton recordset :)

:cry:

n°793369
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 12-07-2004 à 10:59:34  profilanswer
 


 
 
excuse moi d'avoir dit une connerie. Mais alors si tu ne veux pas m'aider, dit moi au moins que rechercher sous google.
j'ai taper fonction find recordset et voila ce que j'ai trouvé.
donc je sais pas et je demande de l'aide ... enfin merci quand meme

n°793457
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 12-07-2004 à 11:59:35  profilanswer
 

euh j'ai trouver autre chose : DataControl.Recordset.FindFirst "fieldname = 'searchstring'"  
seulement sous vb y a pas de datacontrol non ?
est ce qu'il existe un moyen de le remplacer ?

n°793886
Mr Mazurie​r
linux c pas un calvaire !!!
Posté le 12-07-2004 à 17:57:02  profilanswer
 

J'ai taper ce code  
seulement il m'affiche le 2eme msgbox
donc il voit des enregistrements mais il ne trouve pas le bon
et pourtant les msgbox strnom renvoi une valeur correct
ce qui veut dire que la propriété NoMatch prend la valeur true, donc que la recherche n'a pas réussie. Pour corriger cela j'ai trouvé ca :
 
 vous devez replacer le pointeur d'enregistrement actuel sur un enregistrement valide.
 
mais je comprends pas. ca veux dire quoi ?
 
 
 
Private Sub Commande194_Click()
Dim strNom As String
Dim Db As DAO.Database
Dim Rs As DAO.Recordset
Set Db = CurrentDb
Set Rs = Db.OpenRecordset("select * from Entreprise" )
     
    strNom = InputBox("quel est le nom de l'entreprise ?" )
    If Rs.BOF Then
        MsgBox "il n'y a pas d'enregistrements"
        GoTo Exit_Sub
    End If
    Rs.FindFirst "[ent_nom] = '& strnom & '"
    If Rs.NoMatch Then
        MsgBox "il n'y a pas d'enregistrements"
        MsgBox strNom
        GoTo Exit_Sub
    End If
Exit_Sub:
    Set Rs = Nothing
    Set Db = Nothing

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Comment transferer des donnees d'une base a l'autre ? ( access )VB ACCESS enregistrement dans formulaire
Ouvrir un fichier access 2003 sans access...Recherche Programmeur ...
Moteur de recherche en Access[ACCESS]copier zone texte formulaire dans le champ d'une table
[VB ACCESS][VB ACCESS]comment faire un champ texte a valeur unique?
Plus de sujets relatifs à : Mini moteur de recherche sous access


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)